Можно ли использовать 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