我使用的是 Apache 2.2.15。我的 vhost.conf 包含一个 RewriteRule 来处理文章 URL;
# handling for neat article titles
RewriteRule ^/news/[0-9]{4}/[A-za-z]{3}/([0-9a-zA-Z-]*)/([0-9]{4})([0-9]{6})/?$ "/news/article.cfm?clk=$2&article_id=$3&urltitle=$1" [P,L]
这在我们的实时服务器上运行正常,但是在我的本地开发服务器上,当我尝试加载文章时,浏览器中出现 502 错误:
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /news/2015/news-article/0123012345.
Reason: DNS lookup failure for: localhost.example.com
Apache/2.2.15 (CentOS) Server at localhost.example.com Port 80
这是我在错误日志中得到的内容;
[Wed Oct 28 10:00:25 2015] [error] [client 192.168.1.66] proxy: DNS lookup failure for: localhost.example.com returned by /news/2015/news-article/0123012345, referer: http://localhost.example.com/
这使我相信本地服务器的配置中一定存在一些差异,从而导致了问题。
这些是我已启用的 Apache 模块;
$ apachectl -M | grep proxy
proxy_module (shared)
proxy_balancer_module (shared)
proxy_ftp_module (shared)
proxy_http_module (shared)
proxy_ajp_module (shared)
proxy_connect_module (shared)
Syntax OK
$ apachectl -M | grep rewrite
rewrite_module (shared)
Syntax OK
如果我遗漏了任何相关信息,请见谅,并感谢您的任何建议。
答案1
讯息
原因:localhost.example.com 的 DNS 查找失败
表示服务器无法解析代理模块将请求重定向到的主机名。
确保您的/etc/hosts
文件中存在正确的条目。