婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Linux shell實(shí)現(xiàn)HTTP服務(wù)示例代碼

Linux shell實(shí)現(xiàn)HTTP服務(wù)示例代碼

熱門(mén)標(biāo)簽:鶴崗400電話申請(qǐng) 測(cè)繪地圖標(biāo)注名稱(chēng) 智能電銷(xiāo)機(jī)器人有用嗎 天津電話外呼系統(tǒng)排名 商機(jī)地圖標(biāo)注 外呼電話系統(tǒng)怎么操作 怎么在百度地圖標(biāo)注公司的位置 百度地圖標(biāo)注直線距離 德陽(yáng)400電話申請(qǐng)

一、前言

使用代理服務(wù)器 HAProxy 對(duì) Mysql 做負(fù)載均衡是常用方案,為提高可用性,當(dāng)某個(gè) Mysql 出現(xiàn)問(wèn)題時(shí),例如服務(wù)器故障了,或者數(shù)據(jù)復(fù)制中斷了,最好可以讓 HAProxy 馬上知道,然后停止向其轉(zhuǎn)發(fā)請(qǐng)求

HAProxy 如何知道 Mysql 是否有問(wèn)題呢?

二、解決思路

(1)編寫(xiě)一個(gè)shell腳本,檢查 mysql 的狀態(tài),然后輸出結(jié)果,例如狀態(tài)正常時(shí),返回狀態(tài)碼200及正確信息,否則返回狀態(tài)碼503及錯(cuò)誤信息

(2)實(shí)現(xiàn)一個(gè)HTTP服務(wù),有請(qǐng)求連接后,調(diào)用上面的檢查腳本,返回檢查結(jié)果

(3)HAProxy 訪問(wèn)這個(gè)HTTP服務(wù),根據(jù)返回的結(jié)果信息來(lái)判斷這個(gè) mysql 是否可用

如何方便快速的實(shí)現(xiàn)一個(gè)可以調(diào)用shell腳本的HTTP服務(wù)呢?

比較通用的方案就是 xinetd

xinetd 是 Linux 的守護(hù)進(jìn)程,全稱(chēng)為 extended interent daemon,擴(kuò)展的網(wǎng)絡(luò)守護(hù)進(jìn)程

xinetd 可以打開(kāi)一個(gè)端口,等待連接,你可以告訴 xinetd 運(yùn)行哪個(gè)腳本,當(dāng)有連接進(jìn)來(lái)后,xinetd 便會(huì)執(zhí)行腳本,然后直接返回腳本輸出的內(nèi)容

HAProxy -> xinetd -> mysql-check腳本,HAProxy 便取得了mysql的狀態(tài)信息

xinetd 的配置案例

下面實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 xinetd 示例,開(kāi)放 9200 端口,返回一個(gè)測(cè)試腳本的輸出內(nèi)容

如果機(jī)器上還沒(méi)有 xinetd,先安裝一下,centos7 下可以使用命令 yum install xinetd

(1)測(cè)試腳本

#!/bin/bash

echo `uptime | egrep -o 'up ([0-9]+) days' | awk '{print $2}'`

這個(gè)腳本用來(lái)輸出當(dāng)前服務(wù)器的在線天數(shù)

chmod +x 給腳本添加可執(zhí)行權(quán)限

(2)編寫(xiě) xinetd 服務(wù)

例如服務(wù)名為 helloworld,文件名 /etc/xinetd.d/helloworld,內(nèi)容為

service helloworld

{

disable = no

port  = 9200

socket_type   = stream

protocol    = tcp

wait      = no

user      = root

server     = /root/test.sh

server_args   = test

}

port 指定監(jiān)聽(tīng)的端口

server 指定要執(zhí)行的腳本

(3)加入服務(wù)列表

修改 /etc/services

找到定義 9200 端口的位置,注釋掉原有的,添加 helloworld 服務(wù)

helloworld   9200/tcp

#wap-wsp     9200/tcp

#wap-wsp     9200/udp

(4)重啟 xinetd

centos 下的重啟命令為:

systemctl restart xinetd.service

(5)測(cè)試

分別用 nc telnet 兩個(gè)命令測(cè)試一下

nc localhost 9200


telnet localhost 9200


可以正確輸出腳本執(zhí)行內(nèi)容,完成示例

總結(jié)

Linux shell實(shí)現(xiàn)HTTP服務(wù)的內(nèi)容到這就基本結(jié)束了,希望對(duì)大家的工作和學(xué)習(xí)能有所幫助,如果有疑問(wèn)可以留言討論。

您可能感興趣的文章:
  • PHP程序員玩轉(zhuǎn)Linux系列 Nginx中的HTTPS詳解
  • 詳解阿里云LINUX服務(wù)器配置HTTPS(NGINX)
  • Linux下nginx配置https協(xié)議訪問(wèn)的方法
  • Linux下SVN服務(wù)器同時(shí)支持Apache的http和svnserve獨(dú)立服務(wù)器兩種模式且使用相同的訪問(wèn)權(quán)限賬號(hào)
  • Linux服務(wù)器nginx訪問(wèn)日志里出現(xiàn)大量http 400錯(cuò)誤的請(qǐng)求分析
  • Linux下Web性能壓力測(cè)試工具h(yuǎn)ttp_load使用教程
  • Linux下模擬http的get/post請(qǐng)求(curl or wget)詳解

標(biāo)簽:武漢 優(yōu)質(zhì)小號(hào) 滁州 自貢 百色 丹東 六盤(pán)水 鎮(zhèn)江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux shell實(shí)現(xiàn)HTTP服務(wù)示例代碼》,本文關(guān)鍵詞  Linux,shell,實(shí)現(xiàn),HTTP,服務(wù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux shell實(shí)現(xiàn)HTTP服務(wù)示例代碼》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Linux shell實(shí)現(xiàn)HTTP服務(wù)示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 普陀区| 商城县| 安康市| 黄平县| 耒阳市| 泰来县| 酒泉市| 广饶县| 乳山市| 南乐县| 绵竹市| 中江县| 桂阳县| 武义县| 通辽市| 德清县| 徐汇区| 酒泉市| 章丘市| 德阳市| 辛集市| 梁山县| 桐梓县| 噶尔县| 郓城县| 呼和浩特市| 苍山县| 九龙城区| 奈曼旗| 清远市| 称多县| 伊宁县| 新和县| 商南县| 慈利县| 邵武市| 外汇| 福贡县| 永城市| 临泽县| 平江县|