Nginx Web 服务器错误 - 上游从上游读取响应标头时发送的标头太大
Posted
技术标签:
【中文标题】Nginx Web 服务器错误 - 上游从上游读取响应标头时发送的标头太大【英文标题】:Nginx Web Server Error - upstream sent too big header while reading response header from upstream 【发布时间】:2021-02-04 21:45:32 【问题描述】:我有一个 nginx 网络服务器,运行我正在开发的两个站点,它们基本上是相同的站点,具有相同的配置,建立在 Laravel 框架上。两者都有登录设置,但每当我尝试登录时都会给我一个 502 错误。每当我尝试登录时,我都会收到 502 错误,如果我检查 nginx 错误日志,我会看到以下内容:
2020/10/21 22:26:59 [错误] 10400#10400: *12 上游发送太大 从上游读取响应标头时标头,客户端: 162.158.179.216,服务器:vms2.medlab.co,请求:“POST /login HTTP/1.1”,上游:“fastcgi://unix:/run/php/php7.4-fpm.sock:”,主机: “vms2.medlab.co”,引用者:“https://vms2.medlab.co/”
我的网站配置文件如下,和我的其他网站完全一样,运行良好:
#http
server
listen 80;
server_name vms2.medlab.co;
root /var/www/vms.medlab.co/current/public;
index index.php index.html index.htm;
location /
try_files $uri $uri/ /index.php?$query_string;
location = /favicon.ico access_log off; log_not_found off;
location = /robots.txt access_log off; log_not_found off;
location ~* \.php$
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
# HTTPS
server
listen 443 ssl http2;
server_name vms2.medlab.co;
root /var/www/vms.medlab.co/current/public;
index index.php index.html index.htm;
#ssl on;
ssl_certificate /etc/nginx/ssl/cloudflare-medlab.co.crt;
ssl_certificate_key /etc/nginx/ssl/cloudflare-medlab.co.key;
location ~ /\.
deny all;
location /
access_log /var/www/vms.medlab.co/logs/access.log combined;
error_log /var/www/vms.medlab.co/logs/error.log;
try_files $uri $uri/ /index.php?$query_string;
location ~* \.php$
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
我发现了很多关于快速 cgi 的问题,并尝试了一些快速修复,但到目前为止都没有运气。有没有人遇到过类似的事情,还有什么我应该尝试的吗?
提前致谢
【问题讨论】:
【参考方案1】:找到问题了!
必须在 nginx.conf 文件中添加以下内容
http
...
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 90;
fastcgi_send_timeout 90;
fastcgi_read_timeout 90;
【讨论】:
以上是关于Nginx Web 服务器错误 - 上游从上游读取响应标头时发送的标头太大的主要内容,如果未能解决你的问题,请参考以下文章
上游从上游、客户端(nginx、varnish)读取响应头时发送了太大的头
错误:从上游 [uWSGI/Django/NGINX] 读取响应标头时,上游过早关闭连接