web-dev-qa-db-ja.com

乗客とServerAliasが連携していない

複数の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で期待どおりに機能する同様の構成を持っています。

2
Pyzo

問題はこのApacheディレクティブであることが判明しました:

UseCanonicalName On

2
Pyzo