從剛剛「簡(jiǎn)書」平臺(tái)的短暫異常,談Nginx An error occurred報(bào)錯(cuò)~

09.26簡(jiǎn)書平臺(tái)的短暫異常

An error occurred.

Sorry, the page you are looking for is currently unavailable.

Please try again later.

If you are the system administrator of this resource then you should check theerror log for details.

Faithfully yours, nginx.


如上,剛老徐正打算上簡(jiǎn)書平臺(tái),寫文章,出現(xiàn)如上錯(cuò)誤,應(yīng)該持續(xù)了幾分鐘~不知道有多少用戶有感知,平臺(tái)響應(yīng)還不錯(cuò),幾分鐘后已恢復(fù)正?!?/p>

一般nginx的此類報(bào)錯(cuò),原因如下(當(dāng)然,老徐對(duì)nginx了解不深,如下都是一些可能原因)

出現(xiàn)問(wèn)題,首先是去分析nginx的日志,得到一些線索~



可能的常見(jiàn)原因:

/ 1 /

很明顯這是一個(gè)nginx的錯(cuò)誤,查看nginx.conf的文件過(guò)程中分析可能是以下的問(wèn)題,在nginx.xml中有如下配置:

如上圖片源自網(wǎng)絡(luò)


標(biāo)紅的部分是很大的嫌疑,恰好應(yīng)用中在提交數(shù)據(jù)的一瞬間和服務(wù)器有多次交互,這些交互都要過(guò)nginx。再加上用戶IP來(lái)做key,假如多個(gè)用戶訪問(wèn)在網(wǎng)上的最后一跳是同一個(gè)路由器,很顯然會(huì)被服務(wù)器當(dāng)成是一臺(tái)電腦,從而出現(xiàn)判斷錯(cuò)誤。那么又一個(gè)新問(wèn)題來(lái)了,出現(xiàn)503錯(cuò)誤后為啥返回的是那個(gè)錯(cuò)誤頁(yè)面呢?

帶著這個(gè)問(wèn)題在nginx.conf中又發(fā)現(xiàn)了一段配置,如下圖:

如上圖片源自網(wǎng)絡(luò)

這個(gè)配置的意思是當(dāng)出現(xiàn)500、502、503、504的錯(cuò)誤時(shí)返回50x.html頁(yè)面,這個(gè)頁(yè)面在nginx安裝目錄的html文件夾下,內(nèi)容如下:

如上圖片源自網(wǎng)絡(luò)

這個(gè)頁(yè)面經(jīng)過(guò)瀏覽器解析就是開(kāi)頭第一幅圖的樣子。

分析到這里,就大概估計(jì)出原因了,把之前的rate值該大一點(diǎn)即可。那么到底改多大?這個(gè)要根據(jù)不同的業(yè)務(wù)而定,甚至去掉這個(gè)配置,所以這個(gè)是個(gè)經(jīng)驗(yàn)值,通過(guò)多次試驗(yàn)可以得到一個(gè)相對(duì)于應(yīng)用合理的值,這里就不說(shuō)了。

實(shí)際nginx出現(xiàn)這個(gè)錯(cuò)誤原因應(yīng)該有很多,這里提供一種可能原因,以供網(wǎng)友參考。



/ 2 /

日志記錄中HTTP狀態(tài)碼出現(xiàn)499錯(cuò)誤有多種情況,我遇到的一種情況是nginx反代到一個(gè)永遠(yuǎn)打不開(kāi)的后端,就這樣了,日志狀態(tài)記錄是499、發(fā)送字節(jié)數(shù)是0。

老是有用戶反映網(wǎng)站系統(tǒng)時(shí)好時(shí)壞,因?yàn)榫€上的產(chǎn)品很長(zhǎng)時(shí)間沒(méi)有修改,所以前端程序的問(wèn)題基本上可以排除,于是就想著是Get方式調(diào)用的接口不穩(wěn)定,問(wèn)了相關(guān)人員,說(shuō)沒(méi)有問(wèn)題,為了拿到確切證據(jù),于是我問(wèn)相關(guān)人員要了nginx服務(wù)器的日志文件(awstats日志),分析后發(fā)現(xiàn)日志中很多錯(cuò)誤碼為499的錯(cuò)誤,約占整個(gè)日志文件的1%,而它只占全部報(bào)錯(cuò)的70%左右(全部報(bào)錯(cuò)見(jiàn)下圖),那么所有報(bào)錯(cuò)加起來(lái)就要超過(guò)1%了,這個(gè)量還是特別大的。

499錯(cuò)誤是什么?讓我們看看NGINX的源碼中的定義:

ngx_string(ngx_http_error_495_page), /* 495, https certificate error */

ngx_string(ngx_http_error_496_page), /* 496, https no certificate */

ngx_string(ngx_http_error_497_page), /* 497, http to https */

ngx_string(ngx_http_error_404_page), /* 498, canceled */

ngx_null_string,??????????????????? /* 499, client has closed connection */

可以看到,499對(duì)應(yīng)的是 “client has closed connection”。這很有可能是因?yàn)榉?wù)器端處理的時(shí)間過(guò)長(zhǎng),客戶端“不耐煩”了。

Nginx 499錯(cuò)誤的原因及解決方法

打開(kāi)Nginx的access.log發(fā)現(xiàn)在最后一次的提交是出現(xiàn)了HTTP1.1 499 0 -這樣的錯(cuò)誤,在百度搜索nginx 499錯(cuò)誤,結(jié)果都是說(shuō)客戶端主動(dòng)斷開(kāi)了連接。

但經(jīng)過(guò)我的測(cè)試這顯然不是客戶端的問(wèn)題,因?yàn)槭褂枚丝?IP直接訪問(wèn)后端服務(wù)器不存在此問(wèn)題,后來(lái)測(cè)試nginx發(fā)現(xiàn)如果兩次提交post過(guò)快就會(huì)出現(xiàn)499的情況,看來(lái)是nginx認(rèn)為是不安全的連接,主動(dòng)拒絕了客戶端的連接.

但搜索相關(guān)問(wèn)題一直找不到解決方法,最后終于在google上搜索到一英文論壇上有關(guān)于此錯(cuò)誤的解決方法:

proxy_ignore_client_abort on;

Don’t know if this is safe.

就是說(shuō)要配置參數(shù) proxy_ignore_client_abort on;

表示代理服務(wù)端不要主要主動(dòng)關(guān)閉客戶端連接。

以此配置重啟nginx,問(wèn)題果然得到解決。只是安全方面稍有欠缺,但比總是出現(xiàn)找不到服務(wù)器好多了。

還有一種原因是 我后來(lái)測(cè)試發(fā)現(xiàn) 確實(shí)是客戶端關(guān)閉了連接,或者說(shuō)連接超時(shí) ,無(wú)論你設(shè)置多少超時(shí)時(shí)間多沒(méi)用 原來(lái)是php進(jìn)程不夠用了 改善一下php進(jìn)程數(shù) 問(wèn)題解決



/ 3 /

今天網(wǎng)站突然出現(xiàn)如下錯(cuò)誤:

The page you are looking for is temporarily unavailable.Please try again later.

很奇怪,我對(duì)服務(wù)器端的技術(shù)不是很熟悉,于是查詢了下google,在https://wiki.archlinux.org/index.php/Nginx

上面的解決方法:

Error: The page you are looking for is temporarily unavailable. Please try again later.

This is because the FastCGI server has not been started.

如何解決呢?

剛開(kāi)始我懷疑是不是nginx掛了,我首先通過(guò)ps aux | grep nginx,結(jié)果出現(xiàn):

root ? ? ?3769 ?0.0 ?0.0 ? 5760 ? 692 ? ? ? ? ?Ss ? Apr21 ? 0:00 nginx: master process /usr/local/nginx/sbin/nginx

www ? ? ? 3770 ?0.0 ?0.1 ?18680 14252 ? ? ? ? ?S ? ?Apr21 ? 0:03 nginx: worker process

www ? ? ? 3771 ?0.0 ?0.1 ?18680 14252 ? ? ? ? ?S ? ?Apr21 ? 0:03 nginx: worker process

www ? ? ? 3772 ?0.0 ?0.1 ?18712 14276 ? ? ? ? ?S ? ?Apr21 ? 0:03 nginx: worker process

www ? ? ? 3774 ?0.0 ?0.1 ?18680 14248 ? ? ? ? ?S ? ?Apr21 ? 0:03 nginx: worker process

www ? ? ? 3776 ?0.0 ?0.1 ?18712 14240 ? ? ? ? ?S ? ?Apr21 ? 0:03 nginx: worker process

www ? ? ? 3777 ?0.0 ?0.1 ?18680 14252 ? ? ? ? ?S ? ?Apr21 ? 0:03 nginx: worker process

www ? ? ? 3778 ?0.0 ?0.1 ?18680 14232 ? ? ? ? ?S ? ?Apr21 ? 0:02 nginx: worker process

root ? ? 24068 ?0.0 ?0.0 ? 5196 ? 756 pts/1 ? ?S+ ? 14:33 ? 0:00 grep nginx

可見(jiàn)nginx是正常的,本來(lái)打算重啟nginx的:

/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf的,

突然覺(jué)得有沒(méi)有其他方法,有同事提示先在一個(gè)目錄下運(yùn)行下test.html和test.php,結(jié)果html可以運(yùn)行,php無(wú)法運(yùn)行。

證實(shí)是php沒(méi)有啟動(dòng),我剛才也檢測(cè)過(guò)php的進(jìn)程,的確是沒(méi)有php進(jìn)程,這臺(tái)服務(wù)器我不熟悉,同事幫忙查看了下

cd /etc/init.d,就是web管理員經(jīng)??吹牡胤?,是隨著系統(tǒng)自動(dòng)啟動(dòng)的服務(wù),程序等。可以看看:

http://blog.wgzhao.com/2008/12/27/talk-about-rc-local.html的《 說(shuō)說(shuō)?/etc/rc.d/rc.local

找到:

/usr/local/php/sbin/php-fpm start,首先什么是php-fpm呢?

就是FastCGI Process Manager,是一種可選的PHP FastGCI執(zhí)行模式,有一點(diǎn)很有特點(diǎn)的應(yīng)用,尤其是一個(gè)繁忙的網(wǎng)站中:

(1)可適應(yīng)的進(jìn)行再生(NEW!)

(2)基本的統(tǒng)計(jì)功能(Apache's mod_status)

(3)高級(jí)進(jìn)程管理功能,能夠優(yōu)雅的停止/開(kāi)始

(4)能夠使用不同的工作用戶和不同的php.ini

(5)輸入,輸出日志記錄...

開(kāi)啟后,一切恢復(fù)正常!自己的服務(wù)器端技術(shù)還是有很多地方使用的不夠。需要多學(xué)習(xí)使用!




總結(jié):

1、試檢查一下nginx.conf的設(shè)置,是不是有l(wèi)imit的設(shè)置,比如limit_zone、limit_conn,這些參數(shù)也是有影響的。

2、檢查一下防火墻,是不是有相關(guān)的設(shè)置限制。

3、檢查一下nginx.conf的設(shè)置,看看有沒(méi)有valid_referers none blocked的防鏈設(shè)置。

4、看下訪問(wèn)靜態(tài)文件是否正常,錯(cuò)誤排除~



OK,如上只是一些猜測(cè)~

具體原因,具體分析~

越來(lái)越多的系統(tǒng),采用nginx,大家有必要了解些nginx的知識(shí)~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,577評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 178,486評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 63,852評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,600評(píng)論 6 412
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 55,944評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 43,108評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,652評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,385評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,616評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,798評(píng)論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 35,205評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 36,537評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,334評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,570評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容

  • 第一章 Nginx簡(jiǎn)介 Nginx是什么 沒(méi)有聽(tīng)過(guò)Nginx?那么一定聽(tīng)過(guò)它的“同行”Apache吧!Ngi...
    JokerW閱讀 32,744評(píng)論 24 1,002
  • 1.簡(jiǎn)介: ? Nginx:engine X ,2002年,開(kāi)源,商業(yè)版? http協(xié)議:web服務(wù)器(類似于ht...
    尛尛大尹閱讀 1,887評(píng)論 0 3
  • Nginx簡(jiǎn)介 解決基于進(jìn)程模型產(chǎn)生的C10K問(wèn)題,請(qǐng)求時(shí)即使無(wú)狀態(tài)連接如web服務(wù)都無(wú)法達(dá)到并發(fā)響應(yīng)量級(jí)一萬(wàn)的現(xiàn)...
    魏鎮(zhèn)坪閱讀 2,029評(píng)論 0 9
  • 配置運(yùn)行Nginx服務(wù)器用戶(組) 用于配置運(yùn)行Nginx服務(wù)器用戶(組)的指令是user,其語(yǔ)法格式為: use...
    吃瓜的東閱讀 4,530評(píng)論 0 41
  • Nginx API for Lua Introduction ngx.arg ngx.var.VARIABLE C...
    吃瓜的東閱讀 5,838評(píng)論 0 5