У меня есть приложение ruby, которое работает на сервере с несколькими IP-адресами и множеством vhosts. Вот конфигурация проблемного виртуального хоста:
<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: /
Я почти уверен, что используется правильный vhost, потому что alias.example.com создает 404 в правильном файле журнала.
Я пробовал добавить ведение журнала в конфигурацию Пассажира, и, похоже, это означает, что Пассажир получает запрос.
Примечание. Я не могу перенаправить alias.example.com на realname.example.com. Доступ к реальному имени осуществляется через CDN, а к псевдониму - напрямую.
У кого-нибудь есть идеи, почему это не работает? Я уже несколько дней бью головой, и у меня есть аналогичная конфигурация в QA, которая работает, как ожидалось.
Оказывается, проблема заключалась в этой директиве Apache:
UseCanonicalName On