当我尝试查看我的网站主页时显示以下错误:502错误的网关 Nginx
/var/log/nginx 中的错误日志显示以下消息:*2014/04/21 10:30:39 [错误] 3807#0:228 上游在读取上游的响应标头时发送了无效标头,客户端:95.136.96.5,服务器:agronegocios.eu,请求:“GET / HTTP/1.1”,上游:(MyIPaddress):7080/”,主机:“agronegocios.eu”
我的环境:CentOS 6.5;PHP 5.3.3;nginx/1.5.0;MySQL 5.1.73;Joomla 3.2.3 有谁知道我该如何解决这个问题?我看过一些相关的问题和答案,但没有一个是针对同一个问题的……(而且我也不是 Linux 服务器方面的专家……)。谢谢。
我的 nginx.conf 文件:
#user nginx;
worker_processes 1;
#error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;
#pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#tcp_nodelay on;
#gzip on;
#gzip_disable "MSIE [1-6]\.(?!.*SV1)";
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
server_tokens off;
include /etc/nginx/conf.d/*.conf;
}
答案1
我检测到了导致错误的位置(但不是原因):CMS 扩展中的模板模块无法正常工作。禁用该模块后错误消失。无论如何,感谢您的意见和努力!
答案2
我在另一份工作中担任 McAfee Web Gateway 产品的管理员。虽然不是 Nginx,但它是运行标准 HTTP 响应代码的 RHEL 代理服务器。
每当我收到 Bad Gateway 错误时,问题总是由上游设备引起。据我了解,该错误意味着代理收到了它不喜欢的上游设备响应。我的环境中有许多“自主开发”的应用程序,通常发现应用程序没有按照 RFC 正确通信。其他时候,我们发现是无法解析的标头的问题,我们需要制定一项策略来免除这些站点的深度标头检查。我会试着记住它绊倒了哪些标头,当我找到答案时,我会在这里重新发布。