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

首頁 > 開發(fā) > Linux Shell > 正文

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

2020-07-27 19:01:14
字體:
供稿:網(wǎng)友

一、前言

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

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

二、解決思路

(1)編寫一個(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 訪問這個(gè)HTTP服務(wù),根據(jù)返回的結(jié)果信息來判斷這個(gè) mysql 是否可用

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

比較通用的方案就是 xinetd

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

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

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

xinetd 的配置案例

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

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

(1)測(cè)試腳本

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

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

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

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

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

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

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

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í)能有所幫助,如果有疑問可以留言討論。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 民权县| 达州市| 昌吉市| 南靖县| 绩溪县| 澄江县| 漳州市| 荆州市| 神池县| 新竹市| 绍兴县| 盱眙县| 县级市| 镶黄旗| 新巴尔虎右旗| 元朗区| 伊吾县| 子长县| 宜宾市| 上杭县| 周口市| 怀柔区| 通城县| 城固县| 彰化市| 桐庐县| 永州市| 华坪县| 通江县| 武强县| 克山县| 将乐县| 全南县| 林口县| 玉树县| 榆社县| 彭山县| 边坝县| 隆化县| 临清市| 东源县|