Posts Tagged ‘ 反向代理

Apache反向代理Discuz出现“您的请求来路不正确”解决办法

之前就遇到了这个问题,在网上一直没有找到到解决方法。后来试用Nginx和Squid都可以很好的解决这一问题,这次配置反向代理需要通过IPv6访问被代理的服务器,而Nginx和Squid对IPv6的代理一直没有测试成功,只好使用对IPv6支持良好的Apache。而使用Apache就必须解决“请求来路不正确”的问题,在网上找不到答案,于是便去翻看《Apache参考手册》,最终找到方法将这一问题解决了。

解决方法很简单,只需要在配置反向代理的时候加上一行即可:

ProxyPreserveHost On

例如:

<VirtualHost *:80>
ServerName ncist.rayyn.net
ServerAlias ncist6.rayyn.net bbs.ncist.edu.cn
ProxyPass / http://ncistbbs.rayyn.net/
ProxyPassReverse / http://ncistbbs.rayyn.net/
ProxyPreserveHost On #添加这一行即可解决“请求来路不正确”的问题
</VirtualHost>

各参数的配置说明可以参考:http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_proxy.html

Apache/Nginx/Squid反向代理简单设置

1.Apache简单设置

访问http://ncist.rayyn.net得到http://ncistbbs.rayyn.net的内容

LoadModule proxy_module modules/mod_proxy.so
<VirtualHost *:80>
ServerName ncist.rayyn.net
ServerAlias ncist6.rayyn.net bbs.ncist.edu.cn
ProxyPass / http://ncistbbs.rayyn.net/
ProxyPassReverse / http://ncistbbs.rayyn.net/
</VirtualHost>

2.Nginx简单设置

server
{
listen 80;
server_name ncist.rayyn.net;

location / {
proxy_pass http://ncistbbs.rayyn.net/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

3.Squid简单设置

http_port 80 vhost

cache_peer 10.1.0.99 parent 80 0 no-query originserver name=bbs

acl all src 0.0.0.0/0.0.0.0
http_access allow all
cache_peer_access bbs allow all