2015-10-21 2 views
4

Мой вопрос: как я могу заставить Nginx переадресовывать домен (www.example.com) в приложение meteor на том же сервере без ssl.Конфигурация Nginx для метеорита

Подробности: Я пытаюсь использовать Nginx для размещения приложения, сделанного метеор на моем собственном сервере. Я проверил тонну различных файлов конфигурации, которые я нашел в Интернете (большинство из которых устарело), ​​но я не могу заставить Nginx перенаправить мое доменное имя на порт 3000, где метеор может забрать его и обработать стр.

Самый последний конфиг для Nginx к прокси-порт это:

upstream default { 
     server 127.0.0.1:3000; 
} 

server { 
     listen 80; 
     server_name localhost; 

     location/{ 
       proxy_pass http://default/; 
       proxy_http_version 1.1; 
       proxy_set_header Upgrade $http_upgrade; 
       proxy_set_header Connection "upgrade"; 
       proxy_set_header Host $http_host; 

       proxy_set_header X-Real-IP $remote_addr; 
       proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; 
       proxy_set_header X-Forward-Proto http; 
       proxy_set_header X-Nginx-Proxy true; 

       proxy_redirect off; 
     } 
} 

Я немного изменил его к тому, что я считаю правильным для моей установки. Я использую конфигурационный файл по умолчанию в Nginx, и я создал приложение meteor в/usr/share/nginx/html, используя «meteor create html».

Я знаю, что это плохая привычка использовать значения по умолчанию для всего этого, но я просто пытаюсь запустить приложение meteor и запустить его.

У меня должны быть установлены все зависимости: meteor, nodejs, mongodb и nginx.

Многие из наиболее актуальных конфигураций nginx, которые я нашел, используют SSL, которые я не намерен использовать. Я не уверен, как изменить их для того, что мне нужно.

Может ли кто-нибудь объяснить, почему эта конфигурация не работает или что мне не хватает, чтобы заставить Nginx указывать на мое приложение meteor на www.example.com:3000?

Заранее спасибо.

P.S.

Я смог получить ту же самую настройку, используя VM, с тем же самым конфигурационным файлом. Я в недоумении, где я пропускаю шаг.

+0

Я использую Nginx 1.4.6, если это имеет значение. – Jared

+0

* почему эта конфигурация не работает * вы можете объяснить больше, пожалуйста? журналы ошибок? – Anatoly

+0

Я получаю ошибку 502 плохого шлюза от url вместо ожидаемого приложения meteor. В каких журналах ошибок я должен посмотреть, не произошло ли что-то еще? – Jared

ответ

2

Проблема была обратная косая черта в директиве proxy_pass. Это должно было быть proxy_pass http://default;. Благодаря anatoly для указания этого.

UPDATE: Nginx documentation немного смущен, но подчеркивает разницу между proxy_pass с/без URI:

Запрос URI передается на сервер следующим образом:

Если директива proxy_pass является указанный в URI, тогда, когда на сервер передается запрос , часть нормализованного запроса URI , соответствующая местоположению, заменяется URI, указанным в директиве:

location /name/ { 
    proxy_pass http://127.0.0.1/remote/; 
} 

Если proxy_pass указан без URI, запрос URI передается сервера в том же виде, отправленного клиентом, когда первоначальный запрос обрабатывается или полная нормированная URI запроса передается при обработке измененной URI:

location /some/path/ { 
    proxy_pass http://127.0.0.1; 
} 
Смежные вопросы