nginx實現(xiàn)反向代理出現(xiàn)502的問題解決
1. 出現(xiàn)原因
這里我是用的docker容器來進行nginx的啟動的,在我們用nginx的配置進行反向代理的時候,有時候訪問反向代理的url會出現(xiàn)Bad Gateway也就是壞請求,這里無非就是幾種情況:
這里是我的代理代碼:
location /base { proxy_pass http://localhost:8800; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
1.1. 防火墻攔截了端口
我們在宿主機也就是服務(wù)器里面執(zhí)行我們的資源路徑:
curl http://1.92.141.215:8800/captchaImage
可以看到是能訪問得到的
然后進入容器執(zhí)行這行命令: curl http://1.92.141.215:8800/captchaImage命令
docker exec -it nginx bash
我的也是可以訪問的,說明我的端口80和8800都是開放的,如果你的在nginx訪問不到 說明端口沒有開放,可以關(guān)閉防火墻或者開放安全組的端口
1.1.1. 使用 iptables
假設(shè)您要開放 TCP 端口 80
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables-save
1.1.2. 使用 firewall-cmd(適用于 CentOS/RHEL 7+)
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --reload
通過這樣你就可以正常訪問到代理的資源路徑了
1.2. docker容器中的ip和宿主機ip不一致
因為在docker容器里,我們映射了代理到本機的localhost上面,但是容器的IP和宿主機的IP是不一樣的,所以無法通過127.0.0.1去進行代理,必須把localhost換成服務(wù)器的IP。
location /base { proxy_pass http://1.92.141.215:8800; # 將localhost換成服務(wù)器ip proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }
這樣我們通過代理的url去訪問我們的服務(wù)器資源就可以成功訪問了。
到此這篇關(guān)于nginx實現(xiàn)反向代理出現(xiàn)502的問題解決的文章就介紹到這了,更多相關(guān)nginx反向代理502內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
windows系統(tǒng)下安裝Nginx及簡單使用過程
Nginx是一個很強大的高性能Web和反向代理服務(wù),也是一種輕量級的Web服務(wù)器,可以作為獨立的服務(wù)器部署網(wǎng)站,應(yīng)用非常廣泛,特別是現(xiàn)在前后端分離的情況下,這篇文章主要介紹了windows系統(tǒng)下安裝Nginx以及簡單使用,需要的朋友可以參考下2024-04-04Ubuntu?22.04.1?LTS?編譯安裝?nginx-1.22.1的配置過程
Ubuntu安裝Nginx有兩種方式,一種是通過命令的方式,這種方式安裝的Nginx版本低,之前漏掃掃出來Nginx版本低,需要升級所以現(xiàn)在用編譯的方式安裝版本高點的,本文介紹Ubuntu22.04.1?LTS編譯安裝nginx1.22.1的配置過程,本文給大家介紹的非常詳細,需要的朋友參考下吧2024-01-01