国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux shell實現HTTP服務示例代碼

2019-10-26 18:49:15
字體:
來源:轉載
供稿:網友

一、前言

使用代理服務器 HAProxy 對 Mysql 做負載均衡是常用方案,為提高可用性,當某個 Mysql 出現問題時,例如服務器故障了,或者數據復制中斷了,最好可以讓 HAProxy 馬上知道,然后停止向其轉發請求

HAProxy 如何知道 Mysql 是否有問題呢?

二、解決思路

(1)編寫一個shell腳本,檢查 mysql 的狀態,然后輸出結果,例如狀態正常時,返回狀態碼200及正確信息,否則返回狀態碼503及錯誤信息

(2)實現一個HTTP服務,有請求連接后,調用上面的檢查腳本,返回檢查結果

(3)HAProxy 訪問這個HTTP服務,根據返回的結果信息來判斷這個 mysql 是否可用

如何方便快速的實現一個可以調用shell腳本的HTTP服務呢?

比較通用的方案就是 xinetd

xinetd 是 Linux 的守護進程,全稱為 extended interent daemon,擴展的網絡守護進程

xinetd 可以打開一個端口,等待連接,你可以告訴 xinetd 運行哪個腳本,當有連接進來后,xinetd 便會執行腳本,然后直接返回腳本輸出的內容

HAProxy -> xinetd -> mysql-check腳本,HAProxy 便取得了mysql的狀態信息

xinetd 的配置案例

下面實現一個簡單的 xinetd 示例,開放 9200 端口,返回一個測試腳本的輸出內容

如果機器上還沒有 xinetd,先安裝一下,centos7 下可以使用命令 yum install xinetd

(1)測試腳本

#!/bin/bashecho `uptime | egrep -o 'up ([0-9]+) days' | awk '{print $2}'`

這個腳本用來輸出當前服務器的在線天數

chmod +x 給腳本添加可執行權限

(2)編寫 xinetd 服務

例如服務名為 helloworld,文件名 /etc/xinetd.d/helloworld,內容為

service helloworld{disable = noport  = 9200socket_type   = streamprotocol    = tcpwait      = nouser      = rootserver     = /root/test.shserver_args   = test}

port 指定監聽的端口

server 指定要執行的腳本

(3)加入服務列表

修改 /etc/services

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

helloworld   9200/tcp#wap-wsp     9200/tcp#wap-wsp     9200/udp

(4)重啟 xinetd

centos 下的重啟命令為:

systemctl restart xinetd.service

(5)測試

分別用 nc telnet 兩個命令測試一下

nc localhost 9200


telnet localhost 9200

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临夏县| 体育| 玉门市| 文山县| 仲巴县| 远安县| 西丰县| 雷山县| 岢岚县| 朔州市| 锦州市| 伽师县| 昭平县| 五大连池市| 肇庆市| 拜泉县| 德阳市| 彰武县| 休宁县| 电白县| 游戏| 兴海县| 天祝| 南开区| 门源| 惠州市| 东辽县| 清苑县| 科技| 肥城市| 兴仁县| 蒲江县| 乌鲁木齐市| 淳安县| 乌什县| 阿坝| 社会| 津市市| 蒙阴县| 黔西| 赣州市|