Назад | Перейти на главную страницу

Обратный прокси Nginx для приложения Heroku

Можно ли использовать Nginx на моем личном VPS в качестве обратного прокси-сервера перед Heroku (при запуске приложения Ruby on Rails)?

Я хотел бы сделать это, потому что хочу маршрутизировать стандартные запросы (т.е. GET http://mydomain.com) в мое приложение Rails, но различные запросы субдоменов (т.е. GET http://joe.mydomain.com) на отдельный сервер.

Как часть 2 (при условии, что это возможно), какие правильные заголовки прокси-сервера Nginx следует установить в этом случае? Я обычно делаю следующее, когда использую Nginx перед Unicorn:

proxy_redirect off;
proxy_read_timeout 5m;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header   X-Forwarded-Proto  http;

Как и почти в каждом учебнике, но я недостаточно знаю, чтобы знать, какие из них применимы (или отсутствуют) в данном случае.

Помощь будет принята с благодарностью!

Можно делать то, что вы предлагаете, через proxy_pass (http://wiki.nginx.org/HttpProxyModule#proxy_pass), но было бы проще направить эти запросы через DNS.

Чтобы использовать домен apex для Heroku, вы можете использовать записи ALIAS в DNSimple или записи ANAME в DNS Made Easy и обычные записи A для своих поддоменов.

Однако на моем собственном сайте вершина домена установлена ​​на запись A для nginx, которая прямо перенаправляет на www, который является CNAME для heroku. Подробнее о том, что предлагается / поддерживается здесь: https://devcenter.heroku.com/articles/custom-domains