一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

【匯總】nginx 報(bào)錯(cuò)匯總

 WindySky 2016-04-13

 

------------------- [warn] conflicting server name "192.168.1.86" on 0.0.0.0:80, ignored


 [warn]: conflicting server name “abc.com” on 0.0.0.0:80, ignored

出現(xiàn)這個(gè)錯(cuò)誤一般是由于技術(shù)員的粗心造成的,原因是相同的域名abc.com出現(xiàn)兩次甚至是多次

一般在把配置文件分離出來寫時(shí)候會(huì)容易犯。技術(shù)員經(jīng)常復(fù)制配置文件,然后忘記修改里面的內(nèi)容

解決方法就是把所有配置文件查一遍看是否有重復(fù)出現(xiàn)的。

或者查詢哪個(gè)配置文件中有abc.com

WINDOW下用搜索

LINUX下用grep "abc.com"

 

 

-------------------nginx_error.log

 

 

2011/05/27 21:36:14 [error] 6921#0: *21138 upstream timed out (110: Connection timed out) while connecting to upstream, client: 183.39.194.179, server: www.***.com, request: "GET /ajax/userinit?1306503433302 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.***.com", referrer: "http://www.***.com/view/200000"

 

 

從日志的表示來看應(yīng)該不是nginx的問題,而是 fast-cgi 執(zhí)行超時(shí)沒有及時(shí)返回?cái)?shù)據(jù)到ngnix的問題. 可web和數(shù)據(jù)庫(kù)負(fù)載都不高,不應(yīng)該是

程序超時(shí)的問題. 查資料也沒有找到原因,網(wǎng)上于幾個(gè)人說遇到同樣問題,也沒有好的解決方案. 后來仔細(xì)分析日志,發(fā)現(xiàn)出現(xiàn)錯(cuò)誤的日志的時(shí)間都是大于當(dāng)前時(shí)間 ,這點(diǎn)很奇怪,難道是系統(tǒng)時(shí)間的問題? 后來再仔細(xì)查資料,才找到原因. 原來是 centos 的一個(gè)內(nèi)核bug, 調(diào)用gettimeofday()這個(gè)函數(shù)的時(shí)候會(huì)比當(dāng)前時(shí)間快4398秒 .  具體原因是因?yàn)槎嗪薱pu,各核的TSC不一樣造成的.  看來 fast-cgi 應(yīng)該是調(diào)用了這個(gè)函數(shù)的.

解決方案是升級(jí)內(nèi)核..  相信很多和我一樣不是專業(yè)sa的兄弟對(duì)升級(jí)內(nèi)核之類的事情還是比較犯怵的,不過不用擔(dān)心有一個(gè)不用升級(jí)內(nèi)核的解決方案. 在不升級(jí)kernel的情況下,可以考慮修改time source,來解決。修改kernel option。

 

vi /boot/grub/grub.conf 增加如下紅色的參數(shù), 重啟后問題解決
 kernel **** ro root=*****  rhgb quiet clock=pit

 

 

 

 

============================= NGINX 啟動(dòng)時(shí)報(bào)錯(cuò)“[warn]: conflicting server name “xxx.com” on 0.0.0.0:80, ignored”

 

 

include vhost/*.conf;

一般是由于技術(shù)人員配置時(shí)使用Include 語句,使用了nginx.conf之外的配置文件,如果兩個(gè)配置文件重復(fù)配置了xxx.com就會(huì)出現(xiàn)這個(gè)錯(cuò)誤。

 

 

 

 

 

=======================今天PHP的導(dǎo)出EXCEL里面突然出現(xiàn)超時(shí)


雖然我在PHP腳本里面寫了set_time_limit(0);
但是他還是出現(xiàn)那種50x錯(cuò)誤
查看日志文件后發(fā)現(xiàn)里面寫著:
upstream timed out (110: Connection timed out) while reading response
header from upstream

解決辦法如下:
編輯ngnix對(duì)應(yīng)的虛擬主機(jī)配置文件
fastcgi_read_timeout 后面的時(shí)間可以根據(jù)自己的情況設(shè)置,默認(rèn)是60秒
        location ~ .+\.php?$
        {
            fastcgi_pass          127.0.0.1:1025;
        #   fastcgi_pass          unix:/usr/local/webserver/fastcgi/sock/fastcgi.sock;
            fastcgi_index         index.php;
        #   For Time out                這句是注釋,可以不寫
            fastcgi_read_timeout 500;
            include               fastcgi_params;
        }

 


=======================nginx502 Bad Gateway

 

Nginx 502 Bad Gateway的含義是請(qǐng)求的PHP-CGI已經(jīng)執(zhí)行,但是由于某種原因(一般是讀取資源的問題)
沒有執(zhí)行完畢而導(dǎo)致PHP-CGI進(jìn)程終止。

Nginx 502錯(cuò)誤的原因比較多,是因?yàn)樵诖砟J较潞蠖朔?wù)器出現(xiàn)問題引起的。

這些錯(cuò)誤一般都不是nginx本身的問題,一定要從后端找原因!
php-cgi進(jìn)程數(shù)不夠用、php執(zhí)行時(shí)間長(zhǎng)、或者是php-cgi進(jìn)程死掉,都會(huì)出現(xiàn)502錯(cuò)誤
502錯(cuò)誤最通常的出現(xiàn)情況就是后端主機(jī)當(dāng)機(jī)



vim /usr/local/webserver/php/etc/php-fpm.conf

一般來說Nginx 502 Bad Gateway和php-fpm.conf的設(shè)置有關(guān),
php-fpm.conf有兩個(gè)至關(guān)重要的參數(shù),一個(gè)是”max_children”,另一個(gè)是”request_terminate_timeout” ,但是這個(gè)值不是通用的,而是需要自己計(jì)算的。

計(jì)算的方式如下:

如果你的服務(wù)器性能足夠好,且寬帶資源足夠充足,PHP腳本沒有系循環(huán)或BUG的話你可以直接將”request_terminate_timeout”設(shè)置成0s。0s的含義是讓PHP-CGI一直執(zhí)行下去而沒有時(shí)間限制。而如果你做不到這一點(diǎn),也就是說你的PHP-CGI可能出現(xiàn)某個(gè)BUG,或者你的寬帶不夠充足或者其他的原因?qū)е履愕腜HP-CGI能夠假死那么就建議你給”request_terminate_timeout”賦一個(gè)值,這個(gè)值可以根據(jù)你服務(wù)器的性能進(jìn)行設(shè)定。一般來說性能越好你可以設(shè)置越高,20分鐘 -30分鐘都可以。由于我的服務(wù)器PHP腳本需要長(zhǎng)時(shí)間運(yùn)行,有的可能會(huì)超過10分鐘因此我設(shè)置了900秒,這樣不會(huì)導(dǎo)致PHP-CGI死掉而出現(xiàn)502 Bad gateway這個(gè)錯(cuò)誤。

而”max_children”這個(gè)值又是怎么計(jì)算出來的呢?這個(gè)值原則上是越大越好,php-cgi的進(jìn)程多了就會(huì)處理的很快,排隊(duì)的請(qǐng)求就會(huì)很少。設(shè)置”max_children”也需要根據(jù)服務(wù)器的性能進(jìn)行設(shè)定,一般來說一臺(tái)服務(wù)器正常情況下每一個(gè)php-cgi所耗費(fèi)的內(nèi)存在20M左右,因此我的”max_children”我設(shè)置成40個(gè),20M*40=800M也就是說在峰值的時(shí)候所有PHP-CGI所耗內(nèi)存在800M以內(nèi),低于我的有效內(nèi)存1Gb。而如果我的”max_children”設(shè)置的較小,比如5-10個(gè),那么 php-cgi就會(huì)“很累”,處理速度也很慢,等待的時(shí)間也較長(zhǎng)。如果長(zhǎng)時(shí)間沒有得到處理的請(qǐng)求就會(huì)出現(xiàn)504 Gateway Time-out這個(gè)錯(cuò)誤,而正在處理的很累的那幾個(gè)php-cgi如果遇到了問題就會(huì)出現(xiàn)502 Bad gateway這個(gè)錯(cuò)誤。






----------------一般解決辦法

遇到502問題,可以優(yōu)先考慮按照以下兩個(gè)步驟去解決。

1、查看當(dāng)前的PHP FastCGI進(jìn)程數(shù)是否夠用:

netstat -anpo | grep "php-cgi" | wc -l

如果實(shí)際使用的“FastCGI進(jìn)程數(shù)”接近預(yù)設(shè)的“FastCGI進(jìn)程數(shù)”,那么,說明“FastCGI進(jìn)程數(shù)”不夠用,需要增大。


# ps aux | grep php-cgi |wc -l
130

# netstat -anpo | grep "php-cgi" | wc -l
450

# netstat -anpo | grep "php-cgi" |more
tcp        0      0 192.168.12.201:52719        192.168.12.203:13002        ESTABLISHED 27687/php-cgi       off (0.00/0/0)
tcp        0      0 192.168.12.201:52713        192.168.12.203:13002        ESTABLISHED 27685/php-cgi       off (0.00/0/0)
tcp        0      0 192.168.12.201:52694        192.168.12.203:13002        ESTABLISHED 27682/php-cgi       off (0.00/0/0)
tcp        0      0 192.168.12.201:52688        192.168.12.203:13002        ESTABLISHED 27681/php-cgi       off (0.00/0/0)
tcp        0      0 192.168.12.201:52701        192.168.12.203:13002        ESTABLISHED 27683/php-cgi       off (0.00/0/0)

重啟后#   netstat -anpo | grep "php-cgi" | wc -l
46


[root@jushanweb1 ~]#  netstat -anpo | grep "nginx" | wc -l
17
[root@jushanweb1 ~]#  ps aux | grep nginx |wc -l
10






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

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



php.ini中memory_limit設(shè)低了會(huì)出錯(cuò),修改了php.ini的memory_limit為128M,重啟nginx,發(fā)現(xiàn)好了,原來是PHP的內(nèi)存不足了。


---------------臨時(shí)解決辦法:

綜上所述,Nginx提示502和504錯(cuò)誤的臨時(shí)解決辦法是:

1、調(diào)整php-fpm.conf的相關(guān)設(shè)置:

<value name=”max_children”>32</value>

<value name=”request_terminate_timeout”>30s</value>  fast-cgi的執(zhí)行腳本時(shí)間





--------------------------終級(jí)解決方案:

標(biāo)題3中所示的解決方案只能臨時(shí)解決問題,而如果網(wǎng)站的訪問量確實(shí)非常非常大,而Nginx+FastCGI只能對(duì)處理瞬間或短時(shí)間內(nèi)的高并發(fā)有很好的效果,所以目前唯一的終極解決方案是:定時(shí)平滑重啟php-cgi。

具體配置如下:

1、寫一個(gè)非常簡(jiǎn)單的腳本:

#vi /home/www/scripts/php-fpm.sh

內(nèi)容如下:

#!/bin/bash
# This script run at */1
/usr/local/php/sbin/php-fpm reload

2、將腳本添加至計(jì)劃任務(wù):

#crontab -e

內(nèi)容如下:

*/1 * * * * /home/www/scripts/php-fpm.sh

注:為了省事起見,也可以不寫腳本,直接在crontab里寫入php-fpm的平滑重啟命令。

 

 

 

-----------------

Nginx 502錯(cuò)誤情況1:
網(wǎng)站的訪問量大,而php-cgi的進(jìn)程數(shù)偏少。
針對(duì)這種情況的502錯(cuò)誤,只需增加php-cgi的進(jìn)程數(shù)。具體就是修改/usr/local/php/etc/php-fpm.conf 文件,將其中的max_children值適當(dāng)增加。這個(gè)數(shù)據(jù)要依據(jù)你的VPS或獨(dú)立服務(wù)器的配置進(jìn)行設(shè)置。一般一個(gè)php-cgi進(jìn)程占20M內(nèi)存,你可以自己計(jì)算下,適量增多。
/usr/local/php/sbin/php-fpm restart 然后重啟一下.

 

Nginx 502錯(cuò)誤情況2:
CPU占用率、內(nèi)存占用率非常高,遭到CC攻擊.
解決方法請(qǐng)參考:LinuxVPS簡(jiǎn)單解決CC攻擊

Nginx 502錯(cuò)誤情況3:
CPU占用率不高,內(nèi)存溢出。
檢查一下網(wǎng)站程序有沒有問題?一般小偷站點(diǎn)常常會(huì)出現(xiàn)內(nèi)存溢出。
檢查一下/var/log/目錄下的日志,看看是不是有人爆破SSH和FTP端口?
SSH、FTP遭到窮舉也會(huì)占用大量?jī)?nèi)存。是的話改掉SSH端口和FTP端口即可。

 

 

 

 

=======================nginx 504 time out

 

 

 

Nginx 504 Gateway Time-out的含義是所請(qǐng)求的網(wǎng)關(guān)沒有請(qǐng)求到,
簡(jiǎn)單來說就是沒有請(qǐng)求到可以執(zhí)行的PHP-CGI。

Nginx 504 Gateway Time-out則是與nginx.conf的設(shè)置有關(guān)。

504 Gateway Time-out問題常見于使用nginx作為web server的服務(wù)器的網(wǎng)站


一般看來, 這種情況可能是由于nginx默認(rèn)的fastcgi進(jìn)程響應(yīng)的緩沖區(qū)太小造成的,
這將導(dǎo)致fastcgi進(jìn)程被掛起, 如果你的fastcgi服務(wù)對(duì)這個(gè)掛起處理的不好,
那么最后就極有可能導(dǎo)致504 Gateway Time-out
現(xiàn)在的網(wǎng)站, 尤其某些論壇有大量的回復(fù)和很多內(nèi)容的, 一個(gè)頁(yè)面甚至有幾百K
默認(rèn)的fastcgi進(jìn)程響應(yīng)的緩沖區(qū)是8K, 我們可以設(shè)置大點(diǎn)
在nginx.conf里, 加入:

fastcgi_buffers 8 128k

這表示設(shè)置fastcgi緩沖區(qū)為8×128k
當(dāng)然如果您在進(jìn)行某一項(xiàng)即時(shí)的操作, 可能需要nginx的超時(shí)參數(shù)調(diào)大點(diǎn), 例如設(shè)置成60秒:

send_timeout 60;

我只是調(diào)整了這兩個(gè)參數(shù), 結(jié)果就是沒有再顯示那個(gè)超時(shí), 可以說效果不錯(cuò), 但是也可能是由于其他的原因, 目前關(guān)于nginx的資料不是很多, 很多事情都需要長(zhǎng)期的經(jīng)驗(yàn)累計(jì)才有結(jié)果, 期待您的發(fā)現(xiàn)哈!


---------------解決辦法:

調(diào)整nginx.conf的相關(guān)設(shè)置:

fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_buffer_size 256k;
fastcgi_buffers 16 256k;
fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 512k;

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    亚洲精品一区二区三区免 | 国产亚洲欧美另类久久久| 国产老女人性生活视频| 久久久精品日韩欧美丰满| 国产精品一区二区丝袜| 五月天综合网五月天综合网| 精品熟女少妇一区二区三区| 99久久国产综合精品二区| 亚洲一区二区精品免费视频| 日本东京热视频一区二区三区| 高跟丝袜av在线一区二区三区| 午夜色午夜视频之日本| 97精品人妻一区二区三区麻豆| 成人国产激情福利久久| 日韩精品一区二区三区四区| 亚洲精品一二三区不卡| 翘臀少妇成人一区二区| 91熟女大屁股偷偷对白| 国产精品流白浆无遮挡| 日本欧美一区二区三区在线播| 日韩av亚洲一区二区三区| 亚洲视频在线观看免费中文字幕| 亚洲做性视频在线播放| 欧美日韩成人在线一区| 中国一区二区三区不卡| 狠狠干狠狠操亚洲综合| 又色又爽又无遮挡的视频| 中文字幕人妻综合一区二区 | 午夜精品麻豆视频91| 日本一二三区不卡免费| 麻豆印象传媒在线观看| 日韩毛片视频免费观看| 欧美日韩在线视频一区| 亚洲最新一区二区三区| 国产一区二区三区口爆在线| 热久久这里只有精品视频| 九九热精彩视频在线免费| 欧美韩日在线观看一区| 丁香六月婷婷基地伊人| 99国产高清不卡视频| 亚洲av秘片一区二区三区|