这个nginxconfiguration有什么问题(error_page)?

我有configuration

server { server_name "mysite.ru"; root "/var/www/mysite/"; ### location / { try_files $uri $uri/ =404; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } #Errors error_page 400 /errors/index.php?400; error_page 403 /errors/index.php?403; error_page 404 /errors/index.php?404; error_page 500 /errors/index.php?500; location = /errors/ { root "/var/www/common"; internal; } } 

但它仍然显示默认的nginx 404错误页面。

在我看来,你正试图从一个不同的根内执行一个PHP脚本。 您的完全匹配位置只能匹配URI /errors/而不/errors/index.php 。 但是,即使它与URI匹配,也不能在该位置执行PHP脚本。

您需要在任何需要执行PHP脚本的位置复制fastcgi指令。 例如:

 location = /errors/index.php { root "/var/www/common"; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; internal; }