您好,登錄后才能下訂單哦!
用nginx反向代理 localhost:80 域名到服務器 localhost:8080 端口服務時,訪問出現(xiàn)502 bad gateway
原因分析:
1.查看8080端口服務啟動
2.查看錯誤日志: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)錯誤,說明nginx反向代理配置沒有出錯,那就可能是tomcat服務發(fā)生異常
3.查看SELinux日志 /var/log/audit/audit.log
發(fā)現(xiàn) nginx 轉(zhuǎn)發(fā) 8080端口被拒絕
SELinux缺省會通過Linux審計系統(tǒng)auditd將日志寫在/var/log/audit/audit.log內(nèi),而該服務缺省為啟用的;假若auditd長駐程序并未運行,信息將會被寫進/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)絡連接關(guān)閉,所以很自然將其啟用即可:
setsebool -P httpd_can_network_connect 1
再次訪問,即可正常訪問,當然,直接關(guān)閉SELinux也可以訪問,但是不建議這樣解決問題。
nginx經(jīng)常出現(xiàn)nginx 502 bad gateway錯誤,查看日志是最好的辦法,從源頭解決問題,改了nginx配置或者調(diào)優(yōu)nginx,不能馬上看到效果,所以最好臨時寫個腳本,監(jiān)控網(wǎng)站的狀態(tài)碼,一旦出現(xiàn)502錯誤,就重啟下nginx,然后一邊著手從根源上解決nginx 502 bad gateway,寫個小腳本,就當時自動化運維的工具吧。腳本功能可以自己修改,日志/data/scripts/check502.log必須手動創(chuàng)建,位置可以自己定義,腳本內(nèi)容如下:
最主要還是命令:curl --head https://blog.51cto.com/13696145 2>&1 |awk 'NR==4'| awk '{print $2}' 查看當前的狀態(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
加入定時任務crontab -e,每2分鐘執(zhí)行一次檢查;
*/2 * * * * /bin/bash -x /data/scripts/check_502.sh
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。