设置复杂的 Apache 反向代理

设置复杂的 Apache 反向代理

我们即将把一个网站迁移到运行新软件的新服务器上,这通常是一个简单的更改,但我们在文件夹 /nl 中也运行着该网站的荷兰语版本。

我们想将域名 www.example.com 转移到新服务器,但对 /nl 及其内的任何请求都将转移到 dutch.example.com。以下是我们目前的情况。

    ProxyRequests Off

    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>

    ProxyPass /nl http://dutch.example.com/nl
    ProxyPassReverse /nl http://dutch.example.com/nl

由于荷兰网站的图片与当前英国网站的图片混合在一起,因此情况变得更加复杂,这些图片将不再存在于新网站上。因此,我们还需要代理来处理任何 /assets 请求。最重要的是,这是一个电子商务网站,因此所有这些都应该可以通过 SSL 进行。

这可能吗?

非常感激你的帮助

答案1

假设您有 Apache 作为前端,英语站点和荷兰语站点作为后端,请尝试如下操作:

    NameVirtualHost *:80

    <VirtualHost *:80>
        ServerName multilanguage.example.com
        <Location /nl>
                ProxyPass http://dutch.example.com/nl
                ProxyPassReverse http://dutch.example.com/nl
        </Location>
        ProxyPass / http://eng.example.com/
        ProxyPassReverse / http://eng.example.com/
    </VirtualHost>

此配置将

  • 如果输入的是 multilanguage.example.com,它将代理到 eng.example.com
  • 使用 multilanguage.example.com/nl 它将代理到 dutch.example.com/nl

您可以通过查看 ssl.conf 文件轻松添加 SSL 配置。

相关内容