Nginx asp錯誤502的解決方法
初次使用Nginx很多東西不懂。尤其是Nginx asp的相關應用更是一頭霧水。當你一不小心就出現了502錯誤,應該怎么辦呢?其實還是很簡單的,下面就詳細呃介紹有關Nginx asp的相關錯誤問題。
在網上搜了一圈,都是FastCGI,因為通過抓包,調試,發現出現502錯誤并不是nginx的主要原因,看看我的配置,原來僅將aspx交給iis處理,ashx,ascx等都沒轉,因此修改配置:
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; }
順便把網上FASTCGI的也轉一次:
NGINX 502 Bad Gateway錯誤是FastCGI有問題,造成NGINX 502錯誤的可能性比較多。將網上找到的一些和502 Bad Gateway錯誤有關的問題和排查方法列一下,先從FastCGI配置入手:
1.查看FastCGI進程是否已經啟動。NGINX 502錯誤的含義是sock、端口沒被監聽造成的。我們先檢查fastcgi是否在運行
2.檢查系統Fastcgi進程運行情況。除了第一種情況,fastcgi進程數不夠用、php執行時間長、或者是php-cgi進程死掉也可能造成nginx的502錯誤
運行以下命令判斷是否接近FastCGI進程,如果fastcgi進程數接近配置文件中設置的數值,表明worker進程數設置太少
netstat -anpo | grep "php-cgi" | wc -l
3.FastCGI執行時間過長:根據實際情況調高以下參數值
- fastcgi_connect_timeout 300;
- fastcgi_send_timeout 300;
- fastcgi_read_timeout 300;
4.頭部太大nginx和apache一樣,有前端緩沖限制,可以調整緩沖參數
- fastcgi_buffer_size 32k;
- fastcgi_buffers 8 32k;
- 如果你使用的是nginx的負載均衡Proxying,調整
- proxy_buffer_size 16k;
- proxy_buffers 4 16k;
5.https轉發配置錯誤:正確的配置方法
- 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;
- }
當然,還要看你后端用的是哪種類型的FastCGI,我用過的有php-fpm,流量約為單臺機器40萬PV(動態頁面), 現在基本上沒有碰到Nginx asp的錯誤502。
【編輯推薦】