Nginx - 对Heroku的代理请求

时间:2017-01-31 17:25:05

标签: nginx heroku proxy

我正在尝试设置一个Nginx代理,该代理会将所有传入的请求代理到Heroku应用程序。我们的想法是允许我的SaaS应用程序的客户能够使用自定义域。客户将为我的代理设置CNAME,它将设置Host标头并将请求代理到Heroku。

到目前为止,我有这个Nginx配置:

location / {
        proxy_set_header Host $host;
        proxy_pass http://myapp.herokuapp.com;
}

Heroku要求设置Host标头以确定要使用的应用程序。

请求到达Heroku但似乎没有设置Host标头。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

在这里回答我自己的问题......

管理这种方法:

location / {
    proxy_set_header    Host $host;
    proxy_set_header    X-Real-IP $remote_addr;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header    Host $host-customdomain.mydomain.com;
    proxy_redirect      off;
    proxy_pass          http://my_heroku_app_name.herokuapp.com;
}

然后,当我到达我的Heroku应用程序时,我从-customdomain.mydomain.com标题中删除了Host,然后我的应用就知道该请求是针对哪个客户的。希望这有助于某人。我撰写了一篇更详细的博客文章:https://mrvautin.com/enabling-custom-domain-for-saas-application-on-heroku/