Nginx asp錯誤502的解決方法
初次使用Nginx很多東西不懂。尤其是Nginx asp的相關(guān)應(yīng)用更是一頭霧水。當(dāng)你一不小心就出現(xiàn)了502錯誤,應(yīng)該怎么辦呢?其實還是很簡單的,下面就詳細(xì)呃介紹有關(guān)Nginx asp的相關(guān)錯誤問題。
在網(wǎng)上搜了一圈,都是FastCGI,因為通過抓包,調(diào)試,發(fā)現(xiàn)出現(xiàn)502錯誤并不是nginx的主要原因,看看我的配置,原來僅將aspx交給iis處理,ashx,ascx等都沒轉(zhuǎn),因此修改配置:
Conf代碼:
- location ~* /.(asp|aspx|asa|ashx|axd|ascx|asax|asmx)$
{ root /host/wwwroot/www; index default.aspx index.asp
index.aspx; proxy_pass http://127.0.0.1:81; proxy_set_
header X-Real-IP $remote_addr; }
順便把網(wǎng)上FASTCGI的也轉(zhuǎn)一次:
NGINX 502 Bad Gateway錯誤是FastCGI有問題,造成NGINX 502錯誤的可能性比較多。將網(wǎng)上找到的一些和502 Bad Gateway錯誤有關(guān)的問題和排查方法列一下,先從FastCGI配置入手:
1.查看FastCGI進程是否已經(jīng)啟動。NGINX 502錯誤的含義是sock、端口沒被監(jiān)聽造成的。我們先檢查fastcgi是否在運行
2.檢查系統(tǒng)Fastcgi進程運行情況。除了第一種情況,fastcgi進程數(shù)不夠用、php執(zhí)行時間長、或者是php-cgi進程死掉也可能造成nginx的502錯誤
運行以下命令判斷是否接近FastCGI進程,如果fastcgi進程數(shù)接近配置文件中設(shè)置的數(shù)值,表明worker進程數(shù)設(shè)置太少
netstat -anpo | grep "php-cgi" | wc -l
3.FastCGI執(zhí)行時間過長:根據(jù)實際情況調(diào)高以下參數(shù)值
- fastcgi_connect_timeout 300;
- fastcgi_send_timeout 300;
- fastcgi_read_timeout 300;
4.頭部太大nginx和apache一樣,有前端緩沖限制,可以調(diào)整緩沖參數(shù)
- fastcgi_buffer_size 32k;
- fastcgi_buffers 8 32k;
- 如果你使用的是nginx的負(fù)載均衡Proxying,調(diào)整
- proxy_buffer_size 16k;
- proxy_buffers 4 16k;
5.https轉(zhuǎn)發(fā)配置錯誤:正確的配置方法
- server_name www.mydomain.com;
- location /myproj/repos {
- set $fixed_destination $http_destination;
- if ( $http_destination ~* ^https(.*)$ )
- {
- set $fixed_destination http$1;
- }
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header Destination $fixed_destination;
- proxy_pass http://subversion_hosts;
- }
當(dāng)然,還要看你后端用的是哪種類型的FastCGI,我用過的有php-fpm,流量約為單臺機器40萬PV(動態(tài)頁面), 現(xiàn)在基本上沒有碰到Nginx asp的錯誤502。
【編輯推薦】