K's Atelier

個人的な学習記録

Reverse proxy using Nginx

private IPしか持たないEC2インスタンスに対して,reverse proxyでつなぐことができるのかを簡単にためしたら,確かにできた。


こんな構成のVPCを作る。


 public-subnetにreverse proxy用のEC2を立てる。このinstanceにはpublic IPを設定する。

private-subnetにredirect先のserver EC2を立てる。このinstanceはpublic IPを設定しない。




両者にNginxをインストールする。

sudo yum install nginx

reverse proxy側のEC2にて,

/etc/nginx/nginx.conf

に,以下を追記する。

    server {
        listen       80;
        listen       [::]:80;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location /private/ {
            proxy_pass http://xxx.xxx.xxx.xxx:80/;
        }

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

/private/は好きにパスを設定してよい。xxx.xxx.xxx.xxxはprivate IP。

あとは,忘れずにNginxを起動しておく。

sudo systemctl restart nginx
sudo systemctl status nginx
sudo systemctl enable nginx

リダイレクト先の応答がかえって来ないので悩んでいたら,単にNginxが起動していないだけだった。

SSL証明書設定をしてあげれば,https接続も可能になる。