У нас есть приложение 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;
}
}