複数のIPアドレスと複数の仮想ホストを持つサーバーで実行されるRubyアプリケーションがあります。問題のある仮想ホストの構成は次のとおりです。
<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.com Ruby on Railsアプリケーションは正しく動作します。
一方、alias.example.comは私にNot Found: /
を与えるだけです
Alias.example.comが正しいログファイルに404を生成するため、正しい仮想ホストが使用されていることはかなり確信しています。
Passenger構成にログを追加しようとしましたが、Passengerがリクエストを取得していることを示しているようです。
注:alias.example.comをrealname.example.comにリダイレクトすることはできません。実名はCDNを使用してアクセスされますが、エイリアスは直接アクセスされます。
なぜこれが機能しないのか誰かが何か考えを持っていますか?私は何日も頭を叩いていて、QAで期待どおりに機能する同様の構成を持っています。
問題はこのApacheディレクティブであることが判明しました:
UseCanonicalName On