我有一个 ruby 应用程序,它在具有多个 IP 地址和多个虚拟主机的服务器上运行。以下是有问题的虚拟主机的配置:
<VirtualHost 10.0.0.10:80>
ServerName realname.example.com
ServerAlias alias.example.com
DocumentRoot /var/www/sites/example/current/public
<Directory /var/www/sites/example/current/public>
AllowOverride all
Options -MultiViews
</Directory>
ErrorLog /var/log/httpd/example_error_log
CustomLog /var/log/httpd/example_access_log common
RailsEnv production
RackEnv production
</VirtualHost>
当我停下来的时候realname.example.comRuby on Rails 应用程序正常运行。
另一方面别名.example.com只是给我Not Found: /
我相当确定使用了正确的 vhost,因为 alias.example.com 在正确的日志文件中产生了 404。
我尝试将日志记录添加到 Passenger 配置中,它似乎表明 Passenger 正在收到请求。
注意:我无法将 alias.example.com 重定向到 realname.example.com。realname 是使用 CDN 访问的,而 alias 是直接访问的。
有人知道为什么这不起作用吗?我已经绞尽脑汁好几天了,我在 QA 中找到了类似的配置,它可以按预期工作。
答案1
事实证明问题出在这个 Apache 指令上:
UseCanonicalName On