Nginx - 将请求代理到 Heroku

3
我正在尝试设置一个Nginx代理,用于代理所有传入的请求到Heroku应用程序。这个想法是允许我的SaaS应用程序的客户使用自定义域名。客户将会设置一个CNAME到我的代理服务器,并且它将设置Host头并代理请求到Heroku。
目前我有以下Nginx配置:
location / {
        proxy_set_header Host $host;
        proxy_pass http://myapp.herokuapp.com;
}

Heroku要求设置Host头来确定使用哪个应用程序。

请求已到达Heroku,但似乎未设置Host头。

有什么想法吗?

1个回答

6
在此回答我的问题...
成功采用了以下方法:

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应用程序时,我会从Host标头中删除-customdomain.mydomain.com,然后我的应用程序就知道这个请求是哪个客户的了。希望这能帮助到某些人。我已经写了一篇更详细的博客文章:https://mrvautin.com/enabling-custom-domain-for-saas-application-on-heroku/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接