iT邦幫忙

0

【Nginx除錯】-關於幾個Nginx error log 請教

大家好,小弟是新手,請多包涵
以下是幾個最近在架站遇到的問題所記錄的error log from Nginx
想請問各代表什麼意思,會有什麼影響,該如何除錯。 謝謝,麻煩了

2017/08/01 19:10:50 [error] 22396#22396: *549324 upstream timed out
(110: Connection timed out) while reading response header from upstream,
client: 192.168.0.16, server: _, request: "POST /phpMyAdmin/import.php HTTP/1.1",
upstream: "fastcgi://unix:/run/php-fpm/php56-fpm.sock", host: "192.168.0.200"

2017/08/01 19:15:59 [error] 22396#22396: *549324 upstream timed out
(110: Connection timed out) while reading response header from upstream,
client: 192.168.0.16, server: _, request: "GET /phpMyAdmin/db_import.php?db=drupal&token=2c4c8ee7eba348b4a41f0a09514e61e5
HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/php56-fpm.sock", host: "192.168.0.200"

2017/08/01 19:19:24 [error] 22396#22396: *549741 recv() failed
(104: Connection reset by peer) while reading response header from upstream,
client: 192.168.0.16, server: _, request: "GET /phpMyAdmin/ HTTP/1.1", upstream:
"fastcgi://unix:/run/php-fpm/php56-fpm.sock:", host: "192.168.0.200"

2017/08/01 21:25:00 [error] 18789#18789: *554403 upstream timed out
(110: Connection timed out) while reading response header from upstream,
client: 192.168.0.16, server: _, request: "POST /phpMyAdmin/import.php HTTP/1.1",
upstream: "fastcgi://unix:/run/php-fpm/php56-fpm.sock", host: "192.168.0.200"

2017/08/01 21:30:01 [error] 18789#18789: *554683 recv() failed
(104: Connection reset by peer) while reading response header from upstream,
client: 192.168.0.16, server: _, request: "GET /phpMyAdmin/ HTTP/1.1", upstream:
"fastcgi://unix:/run/php-fpm/php56-fpm.sock:", host: "192.168.0.200"

2 個回答

3
bizpro
iT邦大師 1 級 ‧ 2017-08-02 11:01:26
最佳解答

client: 192.168.0.16, server: _, request: "GET /phpMyAdmin/db_import.php?db=drupal&token=2c4c8ee7eba348b4a41f0a09514e61e5
HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/php56-fpm.sock", host: "192.168.0.200"

您從192.168.0.16經socket轉fastcgi連php-fpm, 但主機卻是在192.168.0.200, socket只存在本機(192.168.0.16)中. 請使用:

fasctcgi_pass 192.168.0.200:port;

請修改以上的port.

看更多先前的回應...收起先前的回應...

謝謝您,請問我是要在哪裡修改您所說的Port呢?

我的狀況是每次在匯入SQL資料表時時間都會過長,然後就會跑出405 notallowed nginx
http://ithelp.ithome.com.tw/upload/images/20170802/20105609wubCRpswCe.png

bizpro iT邦大師 1 級 ‧ 2017-08-02 13:11:06 檢舉

port是TCP/IP的基本技術, 您應該要了解port.
socket不是TCP/IP的技術, 而是本機作業核心管控本機程序(processes)之間通訊的通道. socket是不能跨過本機的.

您並未提供Nginx和PHP-FPM設定檔. 只能就有限資訊分析. 但是, 您是初學者, 建議您從簡單的單機版設定Nginx-->fastcgi-->php-fpm, 不要proxy. 等熟練了, 再用Proxy拆分, 再熟練了, 再做load-balancing,..., Nginx官網和Google有很多資訊, 也有一些Nginx的書可參考, 當然要學好這些, 最重要的還是英文.

謝謝您的回答,所以我是經由Nginx的設定檔下去修改fasctcgi這樣嗎?

bizpro iT邦大師 1 級 ‧ 2017-08-02 13:59:31 檢舉

是, fastcgi是Nginx提供的gateway.

1
wiseguy
iT邦超人 1 級 ‧ 2017-08-07 16:11:47

這是 nginx 無法把 php 轉給 php-fpm 處理的錯誤,可能是:

  1. 你根本沒架 php-fpm 或 php-fpm 沒跑起來吧?
  2. 你把 php-fpm 架在別台主機,而 nginx 卻在本機 (socket) 找 php-fpm
  3. php-fpm 預設 listen 9000 port,你卻在連 socket
  4. socket 並不在 /run/php-fpm/php56-fpm.sock,而是在別的地方
  5. /run/php-fpm/php56-fpm.sock 權限不對,不給 nginx runner 連
  6. php-fpm 所開的 socket 數量用光了 (上線流量太大時)

謝謝您的回答,後來我修改了PHP跟Nginx PHP很好修改,因為網站預設是使用NAS提供的虛擬主機服務,裡面有介面可以直接修改,Nginx就比較複雜,使用PieTTY,找到Nginx的設定檔的過程實在難找,網頁端一個、主機端一個

我要發表回答

立即登入回答