最近一台一台主機陸續更新跟進新版 Plesk,為得就是將所有客戶網站更新 PHP 版本至 7.3
更新完後開始陸續有客戶反應在操作 WordPress 後,發現有跳 Error 502 bad Gateway 之問題,原以為是 Cloudflare CDN 造成的
後來仔細檢查後,問題是出在更新後的 Nginx 之設定檔 Nginx.conf 資料少了緩衝區資料設定
解法有兩種,我各別在這筆記以免自己再度遇到又忘掉,或許能幫上一些人
這問題似乎常發生在使用 PHP 7.3 的 WordPress 上面
【解決方式一】適用於 Plesk 主控後臺沒辦法使用 SSH 的人
檢查 FTP 上的 錯誤日誌 proxy_error_log 有出現類似以下錯誤:
[error] 14790#0: *188 upstream sent too big header while reading response header from upstream, client: 203.0.113.2, server: subdomain.example.com, request: “POST /admin_catalog.php HTTP/1.1”, upstream: “http://10.0.0.1:7080/admin_catalog.php”, host: “subdomain.example.com”, referrer: “http://subdomain.example.com/admin_catalog.php”
進到 Plesk 後臺,找到有問題的網站,找到 PHP 設定 > 看是使用那一種 PHP 運行版本,若為 fastcgi ,往下找到 其他指令 > 貼上以下程式碼
fastcgi_buffers 8 16k; fastcgi_buffer_size 32k;
找到 Apache 與 nginx 設定 > 往下找到 其他 Nginx 指令 > 貼上以下程式碼
proxy_buffers 8 16k; proxy_buffer_size 32k;
【解決方式二】適用使用 SSH 可全域宣告
連線進 SSH,並輸入 sudo su 取得權限,再輸入 vi /etc/nginx/nginx.conf 進行編輯
找到 http { 這段程式碼宣告處:
然後在 } 之前的底部位置插入以下程式碼(記得按 Instert 鍵):
proxy_buffers 8 16k; proxy_buffer_size 32k; fastcgi_buffers 8 16k; fastcgi_buffer_size 32k;
就會像下圖這樣:
完成後按一下 ESC 鍵,輸入 :wq 儲存離開
最後請輸入 service nginx restart 重新啟動即可