xdebug調試出現nginx 504錯誤, xdebug不一會自動斷開跳出調試,踩坑的過來人告訴你實質上只要增加一條配置就可以完美解決!!!

這個坑也搞了好久, 現記錄下.

1.首先要明確504錯誤是nginx配置問題,所以調試php等其他配置是木有用的.這樣目標已經縮小很多了.

2.其次, 明確這個nginx是做什麼, 一般有兩種: 

    a. 只是將請求代理轉發, 在配置我們能看到proxy_pass ip 字眼

    b. 將請求通過fastcgi轉發給php-fpm, 在配置有fastcgi_pass ip:port 字眼

3. 最後,對於以上不同的分類對症配置:

兩種都是在nginx配置文件中的 http塊下增加如下:

     a情況加上 : proxy_read_timeout 3600s;  

     b情況加上: fastcgi_read_timeout 3600s;

其實很多網上說a情況還要再加上  proxy_connect_timeout 3600s;  proxy_send_timeout 3600s;配置

b情況要再加上fastcgi_connect_timeout 3600s;  fastcgi_read_timeout 3600s; 配置

但是實質上最關鍵的是read_timeout參數, 其他兩個一般是不怎麼會超時, 可配可不配.

note: 有些情況一條請求鏈路上可能有多層nginx, 所以必定會a,b兩種情況都存在的情況,具體哪個nginx是哪種情況,對應的nginx配置認證看下就知道了.

做了如上配置後,nginx504錯誤是可以解決的, 但如果在以上問題解決完後,xdebug出現過了一段時間就會自動斷開並跳出調試的問題.因爲是nginx+php-fpm模式, 那麼這個問題只能是php的問題.這個是php的腳本執行超時限制. 如果你用的fpm模式, 那麼只要修改php-fpm的配置, 找到其中request_terminate_timeout字段設置一個較大的值, 或者設置爲0表示永不超時,fpm的默認值就是永不超時.然後重啓你pph-fpm以便生效修改的配置.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章