Nginx
nginx + php5-fpm:資源暫時不可用
我有一個 nginx(在一個 Debian docker 容器中),它帶有一個 Symfony 應用程序的配置:
location ~ ^/api/(app|app_dev|config)\.php(/|$) { root /var/www/backend/web/; fastcgi_split_path_info ^/api/(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; fastcgi_param HTTPS off; }
該位置被正確辨識,
SCRIPT_FILENAME
指向正確的文件。但是,我得到recv() not ready (11: Resource temporarily unavailable)
每當我提出請求時,都在 nginx 調試日誌中。nginx 以
504 Gateway Time-out
.有空閒的 fpm 工人在我殺死他們的那一刻被重新製作,因為它是一個池,所以對我來說似乎是正確的。我嘗試使用
127.0.0.1:9000
而不是套接字,但同樣的事情。這很可能不是負載或記憶體的問題,有足夠的 RAM 可用,我只發出一個請求,CPU 負載為 0.0。如何使 FPM 與 nginx 一起工作?
我在您的配置片段中看到的明顯內容是雜散
/
字元:fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
請注意,在範例配置中,這是不存在的。
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
指令
/
中還有一個雜散尾隨。root
root /var/www/backend/web/;
我希望看到:
root /var/www/backend/web;
使用您現有的配置,
SCRIPT_FILENAME
設置為,例如/var/www/backend/web///api/config.php
. 這確實無關緊要,但是您可能遇到了確實很重要的情況。如果這不能解決問題,請開始查看您的應用程式碼。