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