第一種原因:安裝lnmp一鍵安裝包時(shí)php沒安裝成功而出現(xiàn)502 Bad Gateway,從0.9開始只要安裝成功或失敗都就會(huì)有提示。沒安裝成功一般原因是在安裝php前,腳本中某些lib包可能沒有安裝上,造成php沒有編譯安裝成功??梢钥匆幌率欠翊嬖?usr/local/php/sbin/php-fpm ,如果沒有肯定沒安裝成功。
解決方法:
可以嘗試根據(jù)lnmp一鍵安裝包中的腳本手動(dòng)安裝一下,看看是什么錯(cuò)誤導(dǎo)致的,在網(wǎng)上搜索一下,或者把錯(cuò)誤信息發(fā)上來。如果實(shí)在不會(huì)提供按http://lnmp.org/install.html這個(gè)安裝時(shí)的lnmp.log日志文件(可以用winscp登陸下載lnmp.log,壓縮并上傳到本論壇),沒有錯(cuò)誤信息我們沒法說什么原因。本方法只限于lnmp沒安裝成功,只要lnmp安裝成功了這一項(xiàng)就沒可能。
第二種原因:
在php.ini里,eaccelerator配置項(xiàng)一定要放在Zend Optimizer配置之前,否則也可能引起502 Bad Gateway。php一些模塊之間也可能會(huì)造成502,如Zend GuardLoader與Opcache,ioncube與Zend GuardLoader等,一般可以通過注釋掉一個(gè)然后重啟php-fpm,然后看是否還502進(jìn)行排除。
第三種原因:
在安裝好使用過程中出現(xiàn)502問題,一般是因?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)增加,如果php已升級(jí)到5.3.*以上且使用的是dynamic模式,需要調(diào)整pm.max_spare_servers參數(shù)的值。
也有可能是max_requests值不夠用。
第四種原因:
php執(zhí)行超時(shí),修改/usr/local/php/etc/php.ini 將max_execution_time 改為300
第五種原因:
磁盤空間不足,如mysql日志占用大量空間清理一下磁盤上的文件,有部分剩余空間,重啟即可恢復(fù)。
第六種原因:
查看php-cgi或php-fpm進(jìn)程是否在運(yùn)行
第七種原因:
將nginx.conf里的
fastcgi_connect_timeout
fastcgi_send_timeout
fastcgi_read_timeout都調(diào)大一點(diǎn)。
第八種可能原因:http://bbs.lnmp.com/thread-1654-1-1.html?
九、有時(shí)候也可能是自己修改過下面2處的配置,導(dǎo)致nginx配置文件里的設(shè)置和php-fpm上的設(shè)置不一樣也會(huì)502。如果使用unix套接字,修改/usr/local/php/etc/php-fpm.cnf 里設(shè)置,php 5.2為
/tmp/php-cgi.sock
php 5.3及以上版本為listen = /tmp/php-cgi.sock ,同時(shí)/usr/local/nginx/conf/nginx.conf 及其/usr/local/nginx/conf/vhost/ 下面的虛擬主機(jī)配置里的fastcgi_pass unix:/tmp/php-cgi.sock; 不一致就必定502。
有時(shí)候unix套接字模式下可能會(huì)502,可以嘗試改成tcp/ip的方式 php 5.2下
/tmp/php-cgi.sock
替換為
127.0.0.1:9000
php 5.3及以上版本listen = /tmp/php-cgi.sock替換為listen = 127.0.0.1:9000,nginx配置文件及虛擬主機(jī)配置文件里fastcgi_pass unix:/tmp/php-cgi.sock;替換為fastcgi_pass 127.0.0.1:9000; 之后重啟試試。
還需要補(bǔ)充的就是不要按網(wǎng)上找到的教程隨便修改配置,網(wǎng)上找到的可能會(huì)路徑不一樣,也可能會(huì)導(dǎo)致502或有相關(guān)的錯(cuò)誤產(chǎn)生。
十、如果虛擬主機(jī)的日志文件過大也可能會(huì)造成502問題。
建議定期清空一下虛擬主機(jī)的日志文件。
十一、有些程序或者程序的主題有死循環(huán)或其他非常占用資源的代碼也可能會(huì)引起502,可以嘗試暫時(shí)注釋掉可能的主機(jī)的配置文件,重啟看看是否還會(huì)502。
十二、如果以上方法都試過,但還有時(shí)會(huì)出現(xiàn)502錯(cuò),可以嘗試添加502自動(dòng)重啟腳本:http://bbs.lnmp.com/thread-1913-1-1.html
十三、實(shí)在找不到原因可以開啟slowlog看看慢日志是否有相關(guān)有用的信息:http://bbs.lnmp.com/viewthread.php?tid=10251&page=1&fromuid=3#pid30582
十四、升級(jí)PHP后出現(xiàn)502,可能php沒升級(jí)成功。
如果是1.0之前的版本升級(jí)PHP到5.4或5.5后,可能是因?yàn)檫@個(gè)原因:http://bbs.lnmp.com/thread-10763-1-1.html
十五、CentOS 6 下,wordpress訪問后臺(tái)、安裝wp、安裝插件報(bào)502錯(cuò)誤的解決方法:http://bbs.lnmp.com/thread-10767-1-1.html
標(biāo)簽: 502, bad gateway, 502解決方法
該文章在 2025/7/16 10:36:53 編輯過