我有一个网络服务,我想通过URL foo.com/bar
公开。 但是,我的Apache反向代理不能按预期工作。 我已经创建了文件001-default.conf
,它包含以下代码:反向代理:不需要的URL更改
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /bar http://foo.com:8080/bar
ProxyPassReverse /bar foo.com:8080/bar
DocumentRoot /var/www/foo/
ServerName info.foo.com
<Directory /var/www/foo>
Options Indexes FollowSymLinks MultiViews Includes
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
现在我收到一个404
错误代码。
我想在foo.com/bar上实现所有匹配,将其默认重定向到foo.com:8080/bar
,这意味着用户只应该看到网址foo.com/bar
。 反向代理重定向还应包括诸如foo.com/bar?=foobar
之类的请求。
我也能proxy_http和代理:
% sudo a2enmod proxy_http
Considering dependency proxy for proxy_http:
Module proxy already enabled
Module proxy_http already enabled
我希望有一个人在那里,能够帮助我。
相信没有解决不了我的问题类似的问题: apache reverse proxy changes urlTransparent redirect to port 8080
首先,删除:'重定向永久/栏http:// foo:8080/bar'。你想代理,而不是重定向。你现有的'ProxyPass'指令应该这样做。 – arco444 2014-11-24 16:22:22
现在我进入www.foo.com/bar时会得到404。我已更新我的问题以反映这一变化。 – 2014-11-24 16:31:39
您的服务器名称是info.foo.com,这意味着foo.com可能会击中另一个VHOST。 – CodeTower 2014-11-24 16:39:13