成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Nginx php如何解決502 Bad Gateway錯誤

開發 前端
Nginx php一直為我們的服務器服務著。那我們為什么如何才能更好的進行相關的錯誤更正,下面我們就詳細的看看有關的內容。

在Web服務器中有很多先進的技術,Nginx php就是其中的一個,接下來我們就看看在Nginx 中的相關問題解決,希望大家有所收獲。Nginx php中配置php fastcgi組解決莫名其妙的502 Bad Gateway錯誤

一般Nginx php都采用這樣的方式:

  1. location ~ \.php$ {  
  2. proxy_pass http://localhost:9000;  
  3. fastcgi_param SCRIPT_FILENAME /data/_hongdou$fastcgi_
    script_name;  
  4. include fastcgi_params;  

這個方式只能連接到一組spawn-fcgi開啟的fastcgi,在服務器負載稍高時常常出現502 bad gateway錯誤。

起先懷疑這是php-cgi的進程開得太少,增加后仍然有反映時常有錯,偶然間發現php-cgi會報出這樣的錯誤:

  1. zend_mm_heap corrupted 

看來是php-cgi在執行某些代碼時有問題,以致于該線程中止。

在服務器上可能還會看到php-cgi進程在不斷變少,估計是出現錯誤的php-cgi的進程自動退出了。

php的問題總是不太容易能解決,所以在Nginx php方面想想辦法,Nginx的好處是它總是能爆出一些稀奇古怪的做法出來。在Nginx的proxy中,規避莫名其妙錯誤的辦法無非是proxy到一個upstream的服務器組中,然后配置proxy_next_upstream,讓Nginx遇到某種錯誤碼時,自動跳到下一個后端上。這樣,應用服務器即使不穩定,但是在Nginx后面就變成了穩定服務。想到Nginx的fastcgi和proxy是一路東西,所以proxy能用的經驗,移植到fastcgi也能跑得起來。照著這個思路,用spawn-fcgi多開同樣一組php進程,所不同的僅僅是端口:

  1. spawn-fcgi -a 127.0.0.1 -p 9000 -u nobody -f php-cgi -C 100  
  2. spawn-fcgi -a 127.0.0.1 -p 9001 -u nobody -f php-cgi -C 100 

然后把fastcgi的這段配置改成用upstream的方式:

  1. upstream backend {  
  2. server 127.0.0.1:9000;  
  3. server 127.0.0.1:9001;  
  4. }  
  5. location ~ \.php$ {  
  6. proxy_pass http://backend;  
  7. fastcgi_param SCRIPT_FILENAME /data/_hongdou$fastcgi_
    script_name;  
  8. include fastcgi_params;  

檢查配置結果正確,能跑起來;同時在服務器上netstat -n|grep 9000和grep 9001都有記錄,證明連接無誤;在前臺查閱頁面,一切運行正常。這個配置是最簡單的配置,既然能連接上upstream,那么很顯然upstream的一些東西都可以拿來用,比如ip_hash、weight、max_fails等。這樣的配置在單機下不知能不能共享session,沒有測試,如果有問題,可以加上ip_hash,或者配置php把session存進memcached中。然后就是fastcgi_next_upstream的配置,Nginx wiki中沒有介紹到這個配置,查了一下,在Nginx php的CHANGES中有提到,而且出生年月是和proxy_next_upstream一樣的。

既然如此,那就照proxy_next_upstream一樣配吧。一般按默認的值error timeout就可以工作,因為php出現502錯誤的異常是返回的500錯誤,所以我把fastcgi_next_upstream定為:fastcgi_next_upstream error timeout invalid_header http_500;通過這個配置,就可以基本杜絕任何時常性的500錯誤,出問題的幾率會變小很多,如果客戶反映仍然激烈,那么就多增加幾組fastcgi進程。以上配置能夠杜絕由于php所引起的“莫名其妙”的時常性的502錯誤,同時可使Nginx搭配php比從前方式更為強悍。假如Nginx還是返回502錯誤,那這次就一定是出現服務器掛掉或其它嚴重問題的了。

【編輯推薦】

  1. Nginx配置如何解決瑣碎標簽問題
  2. Nginx負載均衡器如何實現自行共享
  3. Nginx代理服務器中的文件整理系統
  4. Nginx Web服務器標準IP解決方案
  5. Nginx異步代理四步解決相關問題
責任編輯:張浩 來源: 互聯網
相關推薦

2018-06-14 09:00:00

WordPress瀏覽器Web服務器

2010-03-29 17:46:39

Nginx asp

2010-03-26 18:41:51

Nginx 502錯誤

2014-06-11 09:34:22

vSphere虛擬機

2010-11-17 09:48:07

Nginx 502錯誤

2017-08-02 15:51:24

PHP中文亂碼

2010-03-24 09:25:36

Nginx配置

2009-12-11 13:33:14

PHP無法修改head

2017-04-07 08:43:46

數據分析錯誤解決

2019-02-25 11:16:29

Windows 10錯誤distributed

2011-05-23 09:51:30

MySQL

2011-12-05 13:09:08

2018-09-20 11:04:02

NginxPHP-FPM502

2024-07-11 08:36:47

Nginx端口服務器

2010-10-08 11:41:38

PHP連接MYSQL

2012-09-05 11:09:15

SELinux操作系統

2025-01-13 08:09:51

Nginx管理工具DevOps

2019-06-12 10:15:17

Windows 10 錯誤系統配置信息

2015-07-14 10:54:50

PHP數據循環內存耗盡

2023-10-11 12:35:29

Maven
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲成人一区 | 国产农村妇女精品一二区 | 91精品久久久久久久久中文字幕 | 97国产一区二区精品久久呦 | 日韩精品二区 | 亚洲久草 | 日韩av在线不卡 | 欧美多人在线 | 精品国产一区二区国模嫣然 | 一区二区av | 国产98色在线 | 日韩 | 亚洲国产片 | 一级片在线观看 | 在线日韩欧美 | 岛国av在线免费观看 | 亚洲高清视频在线 | 国产黄色av网站 | 日本三级网站在线观看 | 精品国产欧美一区二区三区成人 | 日韩精品一区二区三区在线观看 | 天天看夜夜 | 在线观看成人精品 | 日日干日日操 | 日韩在线中文字幕 | 精品视频一区二区三区在线观看 | 成人精品一区二区三区中文字幕 | 久久成人一区 | 精品久久久久久 | www.日韩系列 | 九九热这里只有精品在线观看 | 成人国产在线视频 | 高清黄色网址 | 国产激情视频在线免费观看 | 99热热热| 在线观看成人小视频 | 亚洲aⅴ| 夜夜操天天艹 | 蜜臀久久99精品久久久久久宅男 | 日本aa毛片a级毛片免费观看 | 美女在线一区二区 | 国产一区二区精品在线 |