編碼的世界 / 優質文選 / 文明

文件明明存在nginx卻提示404


2021年10月06日
-   

近日服務器突然出現問題, 瀏覽器訪問時返回”拒絕訪問”錯誤. 首先檢查了端口情況,
netstat -ntulp |grep 80 

發現80端口沒有打開, 於是便重啟nginx服務
service nginx restart

此時再次查看發現80端口是開啟了的, 然而訪問時提示404錯誤.
經確認服務器的nginx配置文件中設置的根目錄和index文件均沒有錯誤, 網站根目錄下的確存在請求的文件.
此時發現當請求html靜態文件時可以正常響應, 請求PHP文件時返回404, 懷疑是php-fpm出了問題.
因為nginx在處理PHP請求時會根據配置文件中定義的匹配規則將PHP請求轉發給相應的fast-cgi(在此為php-fpm), 然後再由fast-cgi進行後續處理並返回結果給nginx
#nginx.conf
#some config.
location ~ .php$ {#This expression can match the php request.
#Include config file "fastcgi_params"
include /etc/nginx/fastcgi_params;
#Enable fastcgi interception error log
fastcgi_intercept_errors on;
#Dispatch the php request to fastcgi
fastcgi_pass 127.0.0.1:9000;
}
#come config.

所以如果fast_cgi程序無法打開的話, nginx也會返回404錯誤.
根據配置文件檢查9000端口
netstat -ntulp |grep 9000

發現9000端口沒有開啟, 重啟php-fpm
service php-fpm restart

問題解決.

熱門文章