繁体   English   中英

与 php 一起使用的 nginx 服务器上无法理解 502 错误

[英]502 Error not understood on nginx server used with php

我目前正在尝试从 Apache 服务器切换到使用 nginx 来抗负载。

但是我遇到了一个我无法解决的错误,我很乐意为您提供帮助,因此:大多数页面 (php) 工作顺利,当我浏览某些页面时,意外地收到 502 错误引用错误中的错误。记录日志

2022/01/25 18:51:57 [error] 848#848: *4 upstream sent too big header while reading response header from upstream, client: 147.234.64.35, server: XXXX.com, request: "GET /XXX.php?XXX=true&XXX=no&XXX= HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.4-fpm.sock:", host: "XXX.com"

但我最不明白的是,当我通过添加值“ini_set ('display_errors', 1);”来启用错误 output 时; 在代码的顶部,它运行顺利,没有502错误

这是在文件/etc/nginx/sites-available/default 中为我定义的

    server {
    server_name domain.com;
    root /var/www/html;

    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     }

    location ~ /\.ht {
        deny all;
    }


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}



server {
    if ($host = domain.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name domain.com;
    return 404; # managed by Certbot

}

我将不胜感激任何帮助或准备谢谢

尝试添加:

fastcgi_buffers 16 16k; 
fastcgi_buffer_size 32k;

或(如果您使用 proxy_pass):

proxy_buffer_size          128k;
proxy_buffers              16 256k;
proxy_busy_buffers_size    256k;

如有必要,更改值;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM