我将以我的安装程序正常运行为出发点,以发送所有打算发送<400状态代码的请求。
在我的开发环境中,我确实想将包括错误在内的实际500错误发送给客户端。 nginx不会忽略该错误,但是会记录错误并显示其内置的502页。
我尝试设置fastcgi_intercept_errors off;
,尽管这是默认设置,但这也不起作用。
有问题的nginx是来自官方docker容器的1.15.3。
配置为
server {
listen 80;
index index.php index.html;
server_name localhost;
error_log /dev/stdout;
access_log /dev/stdout;
root /var/www/html/app/public;
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript application/javascript text/xml application/xml application/xml+rss text/javascript;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_read_timeout 1000;
fastcgi_intercept_errors off;
}
}
如果有任何建议,我将很高兴。
最好的问候
更新
事实证明,打开display_errors时,一个简单的异常不会以500响应(这是开发人员的情况)。
我用中间件解决了这个问题。