apache - 反向代理: unwanted URL change

标签 apache apache2 mod-proxy http-proxy

我有一个 Web 服务,我想通过 URL foo.com/bar 公开该服务。 但是我的 Apache 反向代理无法按预期工作。 我创建了文件 001-default.conf,其中包含以下代码:

<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,这意味着用户应该只看到 URL foo.com/栏。 反向代理重定向还应包括诸如 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 url Transparent redirect to port 8080

最佳答案

尝试将配置编辑为:

<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 来避免您现在可能遇到的/bar/bar 问题。 我对此了解不多,请参阅文档:http://httpd.apache.org/docs/2.2/mod/mod_alias.html

尝试将其添加到您的conf中

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

使用此功能,您可能不想删除代理。

关于apache - 反向代理: unwanted URL change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27109133/

相关文章:

apache - .htaccess 从 Host 重写到没有 uri 的静态站点

Apache Web 服务器 - 如何让我的索引页指向其中一个文件夹

Apache httpd 2.4 反向代理不压缩

apache - 在不丢失配置的情况下将 Apache 2.4.6 升级到 2.4.27

ssl - JBoss 7 和 Apache SSL

java - 路径上的 apache 代理错误背后的 Tomcat

apache - Tomcat 服务 URLs mod_proxy 和 apache 错误

apache - 如何限制特定 IP 范围查看 .htaccess 中的特定页面?

PHP PDO 扩展不可用是命令行

php - 最近从 5.3 更新的 PHP 5.4 在使用变量等于条件快捷方式时崩溃