nginx配置中proxy_pass反向代理502的bug記錄
nginx配置proxy_pass反向代理502bug
記錄一個坑人的bug,
我今天在一臺新的liunx上運行nginx來進行反向代理時候,發(fā)現(xiàn)怎么測都是502
我把配置全部刪了從頭開始配置,發(fā)現(xiàn)80端口正常,80端口index.html正常,反向代理轉向http://127.0.0.1/也正常,
但就是proxy_pass轉向其他端口,比如說http://127.0.0.1:3000/時候,會出現(xiàn)502
這個bug找了半天,最后發(fā)現(xiàn)是環(huán)境安全策略問題,
要運行這個指令
setsebool -P httpd_can_network_connect true
這是一個SELinux的命令,用于允許HTTPD進程連接網絡。SELinux是一種安全機制,用于控制進程和用戶對系統(tǒng)資源的訪問權限。
如果沒有正確配置SELinux,可能會導致一些進程無法正常運行,例如在Nginx上進行反向代理時可能會導致連接錯誤。通過執(zhí)行此命令,可以允許HTTPD進程連接網絡,并解決連接錯誤的問題。
氣死我了,這個bug折騰了一個小時。
nginx反向代理 502 Bad Gateway
查看nginx的error.log日志文件發(fā)現(xiàn)如下信息:
upstream sent too big header while reading response header from upstream
原因是
nginx緩沖區(qū)有一個bug造成的,網站的頁面消耗占用緩沖區(qū)可能過大。
proxy是nginx作為client轉發(fā)時使用的,如果header過大,超出了默認的1k,就會引發(fā)上述的upstream sent too big header
說白了就是nginx把外部請求轉給后端(如apache),apache返回的header太大,導致nginx處理不過來。
解決方法
代理主機的配置文件中添加如下代碼:
upstream site { server 127.0.0.1:8080; } server { listen 80; server_name www.site.com; location / { proxy_pass http://site; #下面這三段代碼是需要添加的。 proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; } }
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Nginx服務器的反向代理proxy_pass配置方法講解
- Nginx代理proxy pass配置去除前綴的實現(xiàn)
- nginx 反向代理之 proxy_pass的實現(xiàn)
- nginx配置proxy_pass代理轉發(fā)時報404問題
- nginx反向代理proxy_pass遇到的死循環(huán)問題
- nginx代理參數(shù)proxy_pass的實現(xiàn)
- Nginx?反向代理緩存(proxy_cache)的實現(xiàn)
- nginx反向代理proxy_set_header
- Nginx Proxy Manager輕松搭建反向代理的實現(xiàn)
- Nginx Proxy 代理測試的實現(xiàn)
相關文章
Nginx基礎配置(main、events、http、server、location)
本文主要介紹了Nginx基礎配置(main、events、http、server、location),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-06-06Nginx+RTMP+nginx-http-flv-module環(huán)境搭建
本文主要介紹了Nginx+RTMP+nginx-http-flv-module環(huán)境搭建,搭建方式可用于直播、視頻會議等場景,同時支持HTTP-FLV,方便在瀏覽器中進行播放2024-03-03nginx中的proxy_set_header參數(shù)指令詳解
本文介紹了Nginx中的proxy_set_header指令,用于自定義代理請求的HTTP頭部信息,實現(xiàn)更靈活的反向代理功能,提供了實際應用場景和配置示例,幫助讀者更好地理解和使用proxy_set_header指令,感興趣的朋友一起看看吧2025-03-03Nginx HTTP:413 Request Entity Too Large解決方法
這篇文章主要介紹了Nginx HTTP:413 Request Entity Too Large解決方法,這個問題需要修改PHP配置以及Nginx配置才可以解決,需要的朋友可以參考下2015-07-07Nginx使用if指令實現(xiàn)多個proxy_pass方式
這篇文章主要介紹了Nginx使用if指令實現(xiàn)多個proxy_pass方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01