這篇文章主要為大家展示了“l(fā)inux下php-cgi停止的解決方法”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“l(fā)inux下php-cgi停止的解決方法”這篇文章吧。
目前創(chuàng)新互聯(lián)建站已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、綏江網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
linux下php-cgi停止的解決方法是:更改nginx的配置項(xiàng),減少FastCGI的請(qǐng)求次數(shù),盡量維持buffers不變即可,例如【fastcgi_buffer_size 128k;】。
本文操作環(huán)境:linux 5.9.8、php 7、thinkpad t480電腦。
前言:
偶然發(fā)現(xiàn)一臺(tái)生產(chǎn)中的服務(wù)器(centos 5.2 64位 4G內(nèi)存)總是出現(xiàn)網(wǎng)站打不開(kāi)的問(wèn)題。后來(lái)就去服務(wù)器上看了下,結(jié)果發(fā)現(xiàn)nginx和php-cgi都在運(yùn)行狀態(tài),但是此時(shí)php-cgi的cpu占用為0。于是我馬上查看了文件句柄數(shù)限制:
ulimit -n
得到的結(jié)果是:1024,這個(gè)值對(duì)生產(chǎn)中的服務(wù)顯得偏小。
網(wǎng)上給出的解決方案,大部分是直接輸入
ulimit -SHn 51200 # 51200可自己根據(jù)應(yīng)用調(diào)整
此法缺點(diǎn)很明顯,一旦退出登陸,設(shè)置就失效了。
也有說(shuō)直接把該命令寫(xiě)到/etc/rc.d/rc.local中的,今天找到一個(gè)正確的做法
打開(kāi)/etc/security/limits.conf,里面有很詳細(xì)的注釋,找到如下設(shè)置(如果沒(méi)有就插入)
代碼如下
* soft nofile 51200 * hard nofile 51200
退出后再次登陸,查看句柄數(shù),已經(jīng)正確設(shè)置為51200。
如果有碰到類似情況,可以檢查一下看看是不是文件句柄數(shù)設(shè)置太小引起的。
訪問(wèn)時(shí)出現(xiàn) 502 Bad Gateway 的解決辦法
Nginx 502 Bad Gateway的含義是請(qǐng)求的php-cgi已經(jīng)執(zhí)行,但是由于某種原因(一般是讀取資源的問(wèn)題)沒(méi)有執(zhí)行完畢而導(dǎo)致php-cgi進(jìn)程終止。一般并發(fā)數(shù)太高的網(wǎng)站都容易出現(xiàn)此錯(cuò)誤。出現(xiàn)502 Bad Gateway的原因有很多,但是大部分人修改下面的參數(shù)即可解決。
更改nginx的幾個(gè)配置項(xiàng),減少FastCGI的請(qǐng)求次數(shù),盡量維持buffers不變:
代碼如下
fastcgi_buffer_size 128k; fastcgi_buffers 2 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k;
打開(kāi) /usr/local/php/etc/php-fpm.conf 文件,修改如下幾個(gè)參數(shù):
代碼如下
25 requests">2048 65535 30s 60s
request_terminate_timeout指的是fast-cgi的執(zhí)行腳本時(shí)間,它默認(rèn)是0s。0s的含義是讓php-cgi一直執(zhí)行下去而沒(méi)有時(shí)間限制。如果你在此設(shè)成0s,那么當(dāng)出現(xiàn)502 Bad Gateway的時(shí)候,這個(gè)502的狀態(tài)將一直持續(xù)下去不會(huì)改變。但是如果你設(shè)置成5s,那么當(dāng)php-cgi假死5s以后會(huì)自動(dòng)恢復(fù)。這個(gè)值可以根據(jù)你服務(wù)器的性能進(jìn)行設(shè)定,這里我設(shè)置的是60s。
max_children表示php-cgi的處理進(jìn)程。如果max_children設(shè)置的較小,比如5-10個(gè),那么php-cgi就會(huì)“很累”,處理速度也很慢,等待的時(shí)間也較長(zhǎng)。如果長(zhǎng)時(shí)間沒(méi)有得到處理的請(qǐng)求就會(huì)出現(xiàn)504 Gateway Time-out錯(cuò)誤。設(shè)置max_children也需要根據(jù)服務(wù)器的性能進(jìn)行設(shè)定,增大進(jìn)程數(shù),內(nèi)存占用也會(huì)相應(yīng)增大,正常情況下每個(gè)php-cgi所耗費(fèi)的內(nèi)存在20M左右,這里我設(shè)置的是25。
php-fpm的默認(rèn)靜態(tài)處理方式會(huì)使得php-cgi的進(jìn)程長(zhǎng)期占用內(nèi)存而無(wú)法釋放,這也是導(dǎo)致nginx出錯(cuò)的原因之一,因此可以將php-fpm的處理方式改成apache-like模式。
修改完成執(zhí)行l(wèi)u-restart 即可(LuManager服務(wù)器管理系統(tǒng))。
以上是“l(fā)inux下php-cgi停止的解決方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站標(biāo)題:linux下php-cgi停止的解決方法
網(wǎng)站URL:http://aaarwkj.com/article24/jegcje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、外貿(mào)建站、企業(yè)網(wǎng)站制作、營(yíng)銷型網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)