用nginx反向代理 localhost:80 域名到服務(wù)器 localhost:8080 端口服務(wù)時(shí),訪問出現(xiàn)502 bad gateway
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)站空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、銀川網(wǎng)站維護(hù)、網(wǎng)站推廣。
原因分析:
1.查看8080端口服務(wù)啟動(dòng)
2.查看錯(cuò)誤日志:error.log,以centos7.x為例,更改配置路徑為:web.dev.xxx.access.ssl.log:
xxx - - [22/Oct/2019:10:24:04 +0800] "GET /test HTTP/1.1" 502 3693 "-" "curl/7.29.0" "-"
沒有相關(guān)錯(cuò)誤,說明nginx反向代理配置沒有出錯(cuò),那就可能是tomcat服務(wù)發(fā)生異常
3.查看SELinux日志 /var/log/audit/audit.log
發(fā)現(xiàn) nginx 轉(zhuǎn)發(fā) 8080端口被拒絕
SELinux缺省會(huì)通過Linux審計(jì)系統(tǒng)auditd將日志寫在/var/log/audit/audit.log內(nèi),而該服務(wù)缺省為啟用的;假若auditd長(zhǎng)駐程序并未運(yùn)行,信息將會(huì)被寫進(jìn)/var/log/messages。
type=AVC msg=audit(1571711734.564:78781): avc: denied { name_connect } for pid=22418 comm="nginx" dest=8080 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:http_cache_port_t:s0 tclass=tcp_socket
4.使用以下指令查看selinux配置:
#getsebool httpd_can_network_connect
#httpd_can_network_connect --> off
SELinux配置將httpd網(wǎng)絡(luò)連接關(guān)閉,所以很自然將其啟用即可:
setsebool -P httpd_can_network_connect 1
再次訪問,即可正常訪問,當(dāng)然,直接關(guān)閉SELinux也可以訪問,但是不建議這樣解決問題。
nginx經(jīng)常出現(xiàn)nginx 502 bad gateway錯(cuò)誤,查看日志是最好的辦法,從源頭解決問題,改了nginx配置或者調(diào)優(yōu)nginx,不能馬上看到效果,所以最好臨時(shí)寫個(gè)腳本,監(jiān)控網(wǎng)站的狀態(tài)碼,一旦出現(xiàn)502錯(cuò)誤,就重啟下nginx,然后一邊著手從根源上解決nginx 502 bad gateway,寫個(gè)小腳本,就當(dāng)時(shí)自動(dòng)化運(yùn)維的工具吧。腳本功能可以自己修改,日志/data/scripts/check502.log必須手動(dòng)創(chuàng)建,位置可以自己定義,腳本內(nèi)容如下:
最主要還是命令:curl --head https://blog.51cto.com/13696145 2>&1 |awk 'NR==4'| awk '{print $2}' 查看當(dāng)前的狀態(tài)碼
vim /data/scripts/check_502.sh
#!/bin/bash
#day=`date +%F_%r`
day=`date +%F_%T`
STATE=`curl --head https://blog.51cto.com/13696145 2>&1 |awk 'NR==4'| awk '{print $2}'`
if [ "$STATE" -eq "502" ]; then
pkill -9 nginx && sleep 1 && /usr/local/nginx/sbin/nginx
echo $day >>/data/scripts/check502.log
echo "nginx 已重啟" >> /data/scripts/check502.log
echo $day take a check !!! >> /data/scripts/check502.log
fi
加入定時(shí)任務(wù)crontab -e,每2分鐘執(zhí)行一次檢查;
*/2 * * * * /bin/bash -x /data/scripts/check_502.sh
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。