位置: 編程技術(shù) - 正文
推薦整理分享Linux shell實現(xiàn)HTTP服務(wù)示例代碼,希望有所幫助,僅作參考,歡迎閱讀內(nèi)容。
文章相關(guān)熱門搜索詞:,內(nèi)容如對您有幫助,希望把文章鏈接給更多的朋友!
一、前言
使用代理服務(wù)器 HAProxy 對 Mysql 做負(fù)載均衡是常用方案,為提高可用性,當(dāng)某個 Mysql 出現(xiàn)問題時,例如服務(wù)器故障了,或者數(shù)據(jù)復(fù)制中斷了,最好可以讓 HAProxy 馬上知道,然后停止向其轉(zhuǎn)發(fā)請求
HAProxy 如何知道 Mysql 是否有問題呢?
二、解決思路
(1)編寫一個shell腳本,檢查 mysql 的狀態(tài),然后輸出結(jié)果,例如狀態(tài)正常時,返回狀態(tài)碼及正確信息,否則返回狀態(tài)碼及錯誤信息
(2)實現(xiàn)一個HTTP服務(wù),有請求連接后,調(diào)用上面的檢查腳本,返回檢查結(jié)果
(3)HAProxy 訪問這個HTTP服務(wù),根據(jù)返回的結(jié)果信息來判斷這個 mysql 是否可用
如何方便快速的實現(xiàn)一個可以調(diào)用shell腳本的HTTP服務(wù)呢?
比較通用的方案就是 xinetd
xinetd 是 Linux 的守護(hù)進(jìn)程,全稱為 extended interent daemon,擴(kuò)展的網(wǎng)絡(luò)守護(hù)進(jìn)程
xinetd 可以打開一個端口,等待連接,你可以告訴 xinetd 運行哪個腳本,當(dāng)有連接進(jìn)來后,xinetd 便會執(zhí)行腳本,然后直接返回腳本輸出的內(nèi)容
HAProxy -> xinetd -> mysql-check腳本,HAProxy 便取得了mysql的狀態(tài)信息
xinetd 的配置案例
下面實現(xiàn)一個簡單的 xinetd 示例,開放 端口,返回一個測試腳本的輸出內(nèi)容
如果機(jī)器上還沒有 xinetd,先安裝一下,centos7 下可以使用命令 yum install xinetd
(1)測試腳本
這個腳本用來輸出當(dāng)前服務(wù)器的在線天數(shù)
用 chmod +x 給腳本添加可執(zhí)行權(quán)限
(2)編寫 xinetd 服務(wù)
例如服務(wù)名為 helloworld,文件名 /etc/xinetd.d/helloworld,內(nèi)容為
port 指定監(jiān)聽的端口
server 指定要執(zhí)行的腳本
(3)加入服務(wù)列表
修改 /etc/services
找到定義 端口的位置,注釋掉原有的,添加 helloworld 服務(wù)
(4)重啟 xinetd
centos 下的重啟命令為:
(5)測試
分別用 nc 和 telnet 兩個命令測試一下
可以正確輸出腳本執(zhí)行內(nèi)容,完成示例
總結(jié)
Linux shell實現(xiàn)HTTP服務(wù)的內(nèi)容到這就基本結(jié)束了,希望對大家的工作和學(xué)習(xí)能有所幫助,如果有疑問可以留言討論。
Git中需要熟記的命令小結(jié) 提交流程相關(guān)查看文件改動以及新增的文件gitstatus添加新增文件gitaddyour_file_path//添加全部文件gitadd*//添加某類型文件gitadddir/*.js簡單的提交文件gitcommit-m
用git打更新包的辦法分享 前言相信很多人都有過這種經(jīng)歷,當(dāng)修改了一堆bug后,要更新代碼到服務(wù)器上,此時,最簡單的方式是將項目文件全部上傳一次,這種方式可行,但不
如何短時間內(nèi)學(xué)好一門語言 shell腳本語言為例 這里我分享的是學(xué)習(xí)計算機(jī)shell腳本語言的方法,可能你不是在軟件行業(yè),但我建議也看看,因為我并沒有講什么技術(shù)細(xì)節(jié),主要分享的是提煉出的通用
標(biāo)簽: Linux shell實現(xiàn)HTTP服務(wù)示例代碼
本文鏈接地址:http://esstyw.cn/biancheng/371463.html 轉(zhuǎn)載請保留說明!網(wǎng)站地圖: 企業(yè)信息 工商信息 財稅知識 網(wǎng)絡(luò)常識 編程技術(shù)
友情鏈接: 武漢網(wǎng)站建設(shè)