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

Поместите Nginx перед приложением Heroku, чтобы запретить доступ к нему по IP

У нас есть приложение Heroku http://random-heroku-app.herokuapp.com и доступ к нему (с использованием HTTPS) должен быть ограничен всего двумя IP-адресами. Nginx с его функцией allow здесь идеально подходит.

Но можно ли развернуть Nginx в AWS и настроить его так, чтобы он находился «перед» приложением Heroku?

Пример: Если я пойду в http://random-heroku-app.herokuapp.com, Nginx сначала проверит, пытаюсь ли я подключиться с разрешенного IP-адреса, и только потом проксирую меня на http://random-heroku-app.herokuapp.com.

Заранее спасибо!

Конечно!

Вам просто понадобится серверный блок внутри 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;
    }
}