我有一个极其简单的配置,我相信它应该可以反向代理我在example.com:1234
上看到的内容example.com[:80]
。
error_log /var/log/nginx/error.log info;
events{
}
http{
server{
listen 80;
server_name example.com;
location / {
proxy_pass http://example.com:1234;
proxy_redirect default;
}
}
}
但是,导航到端口 80 会导致内部服务器错误500
- 而导航到端口1234
则会呈现预期的输出。
日志仅包含“信号进程启动”条目。
我做错了什么或遗漏了什么?我怎样才能记录更好的(任何!)服务器错误描述;我预计这不是最后一次有用的描述。
答案1
如果您的后端位于同一主机上,请尝试使用。NGINX 在使用 DNSproxy_pass http://127.0.0.1:1234;
之前proxy_pass http://example.com:1234;
会调用内部名称解析逻辑,由于您的server_name
与指令中的主机名相同proxy_pass
,这可能是问题的根源。
答案2
只需删除 proxy_redirect 并向 NGINX 发送另一个请求。如果仍然有内部服务器错误,请调查日志文件。
此外,检查后端(proxy_passhttp://example.com)从您的服务器使用 curl 来确保您的后端是健康的。