Put 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 .

Заранее благодарим!

3
задан 14 April 2017 в 12:34
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;
    }
}
0
ответ дан 3 December 2019 в 07:56

Теги

Похожие вопросы