拥有 CentOS 和 Plesk 的服务器。按照此处描述的方式安装 nginx:http://gudym.net/plesk-nginx.html 但现在如果我去我的超级巨无霸网站我越来越
502 Bad Gateway
nginx/0.8.55
此错误似乎是因为 Apache 没有响应 NginX。但如果我mysupermegasite.com:8080我看到的是正确的页面。因此,Apache 似乎在 8080 端口上运行良好。并且在该指令中,Apache 应该位于 8080 端口!因此,这似乎是正确的。
此外
/var/www/vhosts/mysupermegasite.com/conf/nginx.conf 我看到:
server {
listen 80;
server_name mysupermegasite.com www.mysupermegasite.com ;
error_log /var/www/vhosts/mysupermegasite.com/statistics/logs/error_log.nginx warn;
location / {
proxy_pass http://www.mysupermegasite.com:8080$request_uri;
include /etc/nginx/proxy.conf;
}
location ~*/w3tc/* {
proxy_pass http://www.mysupermegasite.com:8080$request_uri;
include /etc/nginx/proxy.conf;
}
location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js|ico|swf)$ {
root /var/www/vhosts/mysupermegasite.com/public_html;
expires 7d;
}
}
所以...据我理解,它将 nginx 引导至 mysupermegasite.com:8080 以从 Apache 获取页面。
我们来看一下错误日志六、/var/www/vhosts/mysupermegasite.com/statistics/logs/error_log.nginx
2012/02/07 07:35:29 [错误] 11758#0:*1 无法解析 mysupermegasite.com(110:操作超时),客户端:89.112.11.xx,服务器:mysupermegasite.com,请求:“GET / HTTP/1.1”,主机:“mysupermegasite.com”
好的,它无法解析此域名。但是为什么?我甚至添加了
127.0.0.1 mysupermegasite.com
到/etc/hosts文件
如果我尝试
wget mysupermegasite.com:8080
它下载了页面。但是为什么 NginX 无法解析此主机?
出了什么问题?去哪里查找原因?
答案1
您的系统似乎无法解析此域名。nginx 不使用/etc/hosts
文件来解析域名。请检查是否/etc/resolv.conf
包含正确的名称服务器。我建议您明确指定 IP 地址或localhost
:
location / {
proxy_pass http://localhost:8080;
}
或者,您可以为 nginx 指定更好的解析器,该解析器知道此域,而不是来自的解析器/etc/resolv.conf
:
resolver 192.0.2.1;
您可以检查解析器是否知道该域:
# dig mysupermegasite.com @192.0.2.1