2014-11-24 75 views
2

我有一个网络服务,我想通过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

+0

首先,删除:'重定向永久/栏http:// foo:8080/bar'。你想代理,而不是重定向。你现有的'ProxyPass'指令应该这样做。 – arco444 2014-11-24 16:22:22

+0

现在我进入www.foo.com/bar时会得到404。我已更新我的问题以反映这一变化。 – 2014-11-24 16:31:39

+0

您的服务器名称是info.foo.com,这意味着foo.com可能会击中另一个VHOST。 – CodeTower 2014-11-24 16:39:13

回答

2

尝试和编辑配置到:

<VirtualHost *:80> 
    <Proxy *> 
      Order deny,allow 
      Allow from all 
    </Proxy> 
    ProxyPreserveHost On 
    ProxyRequests Off 
    ProxyPass /bar http://foo.com:8080 # Note removed /bar 
    ProxyPassReverse /bar foo.com:8080 # Note removed /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> 

您还可以使用mod_alias中尽量避免TE /酒吧/条问题,您可能现在面对。 我不很了解,请参阅文档:http://httpd.apache.org/docs/2.2/mod/mod_alias.html

尝试像这样添加到您的conf

Alias /bar http://foo.com:8080 

使用这个你可能wan't删除代理。

+0

这将用户重定向到http://foo.com:8080显示URL http://foo.com/bar,这确实是进步,但我仍然需要重定向到http://foo.com:8080/sparql 。如我所能收集的票价那样,当涉及港口时,别名不起作用。 :S – 2014-11-24 17:21:27