如何在 Apache for Rails 中设置 2 个指向同一位置的 URL

如何在 Apache for Rails 中设置 2 个指向同一位置的 URL

我想将 2 个 URL 指向同一个 rails 应用。这看起来很容易,但实际上行不通!

现有设置如下:

<VirtualHost *:80>
        DocumentRoot /home/some/path
        ServerName long_foo_name.com
        RewriteEngine On
        ProxyRequests Off
        ProxyPass / http://localhost:3000/
        ProxyPassReverse / http://localhost:3000/
        ProxyPreserveHost on
        AccessFileName .htaccess

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

我复制/粘贴了此内容,并将服务器名称修改为新服务器名称(假设为“foo.com”)。但是,当我尝试访问 foo.com 时,我得到的是默认的 Fedora 测试页面。Apache 错误日志显示“目录索引被选项指令禁止”,并且 rails 日志未显示请求正在到达 rails。

一个可能相关也可能不相关的警告是:第二个域名(本例中为“foo.com”)是一个“租用”的 URL。意思是:我实际上并不拥有它,它是由所有者租给我的。当我 ping 该域名时,返回的 IP 实际上与我的服务器不同。

但对该域的请求确实到达了我的服务器(如 apache 访问日志所示)。因此,对该域的请求似乎由他们的服务器代理。

这种代理会影响 Apache 处理请求的方式吗?

答案1

看起来他们确实在使用代理。您可以通过访问网站并查看源 IP 来验证这一点 - 如果源 IP 是您的 IP,那么他们就不是在使用代理,而是在做一些事情真的很奇怪,否则源 IP 应该是他们的代理服务器的 IP。我想他们的代理可能会对设置产生各种不愉快的影响——Host例如,如果他们的代理服务器发送的标头不是您所期望的,那么这自然会导致问题。出于这个原因,我总是将提供的虚拟主机名称记录在我的“默认虚拟主机”日志中——它向我展示了人们可能从哪里访问我。

至于设置,我会强烈建议让他们更改 DNS 以直接指向您的服务器。您“租用”域名无关紧要;DNS 仍然可以得到妥善管理。代理唯一有意义的时候是他们只将网站的一部分重定向到您,并在本地提供同一域上的其他内容。对于您的 Apache 配置,为什么要设置一个完全独立的虚拟主机,而不是在ServerAlias现有虚拟主机上添加第二个域名?

相关内容