nginx反向代理502-Bad Gateway問(wèn)題解決

參考自:http://blog.codingplayboy.com/2017/05/22/nginx-502-bad-gateway/

用nginx反向代理 localhost:80 域名到服務(wù)器 localhost:8080 端口服務(wù)時(shí),訪問(wèn)出現(xiàn)502 bad gateway

原因分析:

1. 經(jīng)驗(yàn)證8080端口服務(wù)啟動(dòng)

2. 查看錯(cuò)誤日志:error.log,以centos7為例,默認(rèn)路徑為:/var/log/nginx/error.log:

::1 - - [27/Nov/2018:14:15:51 +0800] "GET /test HTTP/1.1" 502 3693 "-" "curl/7.29.0" "-"

沒(méi)有相關(guān)錯(cuò)誤,說(shuō)明nginx反向代理配置沒(méi)有出錯(cuò),那就可能是httpd服務(wù)發(fā)生異常

3. 查看SELinux日志 /var/log/audit/audit.log

發(fā)現(xiàn) nginx 轉(zhuǎn)發(fā) 8080端口被拒絕

SELinux缺省會(huì)通過(guò)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(1543286075.634:78781): avc: denied { name_connect } for pid=3232 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

再次訪問(wèn),即可正常訪問(wèn),當(dāng)然,直接關(guān)閉SELinux也可以訪問(wèn),但是不建議這樣解決問(wèn)題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容