Я хотел бы запустить две версии моего сайта для рельсов, один для производства и один для разработки. Производство один прослушивает порт 80 и развитие будет слушать на порту 9033. Вот мой сервер блокирует конфигурации, которые находятся в одном файлеСайт Nginx Rails и пассажир с несколькими портами
server {
listen 80 default_server;
server_name mywebsite.com;
passenger_enabled on;
passenger_app_env production;
root /path/to/public/dir;
}
server {
listen 9033 default_server;
server_name mywebsite.com;
passenger_enabled on;
passenger_app_env development;
root path/to/public/dir;
passenger_friendly_error_pages on;
}
Проблема заключается в том, что, когда я пытаюсь подключиться к веб-сайт через мой браузер, независимо от того, какой порт я использую, я всегда получаю версию веб-сайта, соответствующую среде, указанной в блоке сервера сперва. Таким образом, в приведенном выше примере, он всегда будет служить производственной версии моего сайта.
Почему первый серверный блок переопределяет второй, и как я могу его сделать, чтобы я мог обращаться к любой из версий моего веб-сайта, не внося изменения в файлы конфигурации и перезагружая nginx?
UPDATE:
Ни одно из предложений не работали, даже после того, как очистить кэш браузера перед отправкой каждого запроса HTTP. Я изменил свои блоки сервера на следующее в надежде моего сервера возвращение другой версии сайта
server {
listen *:80;
server_name mywebsite.com;
passenger_enabled on;
passenger_app_env production;
root /home/alex/code/m2m/public/;
}
server {
listen *:80;
server_name dev.mywebsite.com;
passenger_enabled on;
passenger_app_env development;
root /home/alex/code/m2m/public/;
passenger_friendly_error_pages on;
}
, а затем добавил следующую строку в моем/и т.д./файл хостов
my.ip.addr.ess dev.mywebsite.com
Но запросы к оба домена приводят к возврату только производственной версии моего веб-сайта. Примечание. Я использую файл nginx.conf по умолчанию. Есть ли способ отлаживать мой браузер (Chrome v40.0.2214.111 (64-разрядный)), чтобы увидеть, изменились ли мои запросы? Я думаю, что проблема кроется в клиентах, поскольку совет, который дали мне комментарии, кажется, что он должен работать.
Ваши конфигурации выглядят нормально, отправляйте журналы. Если вы прокомментируете, что первый серверный блок является вторым рабочим штрафом на порту 9033 в качестве версии разработки? Есть ли еще серверные блоки? –
Когда я закомментировать первый блок сервера, только версию развития на порту 9033 возвращает правильный веб-страница, серийная версия получает 404. Вот Pastebin из моих журналов: http://pastebin.com/Bk7vFESX Там не являются другими серверными блоками. – almel
Пожалуйста, проверьте, во-первых, удаление директив 'default_server', а во-вторых, удаление' server_name' из второго местоположения 'server'. –