主頁(yè) > 知識(shí)庫(kù) > Nginx 502 Bad Gateway錯(cuò)誤原因及解決方案

Nginx 502 Bad Gateway錯(cuò)誤原因及解決方案

熱門(mén)標(biāo)簽:電銷(xiāo)智能機(jī)器人試用 高德地圖標(biāo)注足跡怎么打標(biāo) 激光標(biāo)記地圖標(biāo)注 智能電銷(xiāo)機(jī)器人真的有用么 新鄉(xiāng)牧野400電話申請(qǐng) 撫州市城區(qū)地圖標(biāo)注 企業(yè)辦理400電話收費(fèi)標(biāo)準(zhǔn) 百度地圖底圖標(biāo)注 中國(guó)地圖標(biāo)注上各個(gè)省

Nginx 502 Bad Gateway 的錯(cuò)誤已經(jīng)遇到好幾次了,這里做一下記錄,備忘哈哈。


會(huì)有好多種情況出現(xiàn)502錯(cuò)誤,下面我們分情況來(lái)說(shuō)一下。

一、fastcgi緩沖區(qū)設(shè)置過(guò)小

出現(xiàn)錯(cuò)誤,首先要查找nginx的日志文件,目錄為/var/log/nginx,在日志中發(fā)現(xiàn)了如下錯(cuò)誤。

2013/01/17 13:33:47 [error] 15421#0: *16 upstream sent too big header while reading response header from upstream

查閱了一下資料,大意是nginx緩沖區(qū)有一個(gè)bug造成的,我們網(wǎng)站的頁(yè)面消耗占用緩沖區(qū)可能過(guò)大。

網(wǎng)上查找了一下解決方法,在國(guó)外網(wǎng)站看到了一個(gè)增加緩沖區(qū)的方法,徹底解決了Nginx 502 Bad Gateway的問(wèn)題。方法如下:

http {
  ...
  fastcgi_buffers 8 16k;
  fastcgi_buffer_size 32k;
  ...
}

請(qǐng)根據(jù)服務(wù)器已經(jīng)網(wǎng)站的情況自行增大上述兩個(gè)配置項(xiàng)。

二、代理緩沖區(qū)設(shè)置過(guò)小

如果你使用的是nginx反向代理,如果header過(guò)大,超出了默認(rèn)的1k,就會(huì)引發(fā)上述的upstream sent too big header (說(shuō)白了就是nginx把外部請(qǐng)求給后端處理,后端返回的header太大,nginx處理不過(guò)來(lái)就會(huì)導(dǎo)致502。

server {
    listen    80;
    server_name *.lxy.me;
    location / {
###############添加這3行
        proxy_buffer_size 64k;
       proxy_buffers  32 32k;
       proxy_busy_buffers_size 128k;
###############添加這3行
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP    $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
............
}

三、默認(rèn)php-cgi的進(jìn)程數(shù)設(shè)置過(guò)少

在安裝好使用過(guò)程中出現(xiàn)502問(wèn)題,一般是因?yàn)槟J(rèn)php-cgi進(jìn)程是5個(gè),可能因?yàn)閜hpcgi進(jìn)程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children值適當(dāng)增加。也有可能是max_requests值不夠用。需要說(shuō)明的是這連個(gè)配置項(xiàng)占用內(nèi)存很大,請(qǐng)根據(jù)服務(wù)器配置進(jìn)行設(shè)置。否則可能起到反效果。

四、php執(zhí)行超時(shí)

php執(zhí)行超時(shí),修改/usr/local/php/etc/php.ini 將max_execution_time 改為300

五、nginx等待時(shí)間超時(shí)

部分PHP程序的執(zhí)行時(shí)間超過(guò)了Nginx的等待時(shí)間,可以適當(dāng)增加nginx.conf配置文件中FastCGI的timeout時(shí)間

http {
 fastcgi_connect_timeout 300;
 fastcgi_send_timeout 300;
 fastcgi_read_timeout 300;
 .....
 }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:海西 延安 西安 辛集 忻州 邯鄲 臨汾 南通

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Nginx 502 Bad Gateway錯(cuò)誤原因及解決方案》,本文關(guān)鍵詞  Nginx,502,Bad,Gateway,錯(cuò)誤,原因,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Nginx 502 Bad Gateway錯(cuò)誤原因及解決方案》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Nginx 502 Bad Gateway錯(cuò)誤原因及解決方案的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章