将 Nginx 放在 Heroku 应用程序前面以拒绝通过 IP 访问

将 Nginx 放在 Heroku 应用程序前面以拒绝通过 IP 访问

我们已启用 Heroku 应用http://random-heroku-app.herokuapp.com,并且必须将其访问(使用 HTTPS)限制为仅 2 个 IP。Nginx 及其允许功能非常适合此用途。

但是,是否可以在 AWS 中部署 Nginx 并对其进行配置,以便它位于 Heroku 应用程序的“前面”?

例子: 如果我访问http://random-heroku-app.herokuapp.com,Nginx 首先会检查我是否尝试从允许的 IP 进行连接,然后才将我代理到http://random-heroku-app.herokuapp.com

先感谢您!

答案1

当然可以!

你只需要 nginx 内部的一个服务器块,它看起来像这样:

server {
    listen 443 ssl;
    server_name random-heroku-app.herokuapp.com;
    ssl_certificate .ssl/cert.crt;
    ssl_certificate_key .ssl/key.key;

    allow   publicip;
    deny    all;

    location / {
        proxy_pass https://appip:443;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

相关内容