2014-11-24 18 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