Web開発

【リバースプロキシ】nginxを使ってリクエストを受け流す!【通信の中継】

reverse-proxy

今回は通信を受け流すだけのサーバーを構築する必要があったので書き残しておきたいと思います。

いわゆるリバースプロキシってやつですね。

nginxをインストールして設定ファイルを作成するだけなので非常に簡単です。

では早速、解説していきます!

環境
  • Amazon Linux 2
  • nginx

nginxをインストール

今回はAmazon Linux 2を使用します。

nginxはどのOSでも簡単にインストールできるので問題ないと思います。

Amazon Linux 2の場合はこんな感じでインストールできます。

$ sudo amazon-linux-extras install nginx1

そしてnginxを起動します。

$ sudo systemctl start nginx

ここでサーバーにアクセスするとnginxのページが表示されるはずです。

nginx

設定ファイルの作成

次はリバースプロキシを行うための設定ファイルを作成します。

nginxの設定ファイルは /etc/nginx/ に存在します。

その中の conf.d/ というディレクトリの中に設定ファイルを作成することで追加で設定が読み込まれます。

このディレクトリの中にファイルを作成しましょう!

$ sudo vi /etc/nginx/conf.d/reverse_proxy.conf

ファイルの中身は以下のように指定してください。

proxy_passは転送先のURLを指定しましょう!

server {
  listen 80;

  location / {
    proxy_pass                              https://www.google.com;
    proxy_redirect                          off;
    proxy_set_header Host                   $host;
    proxy_set_header X-Real-IP              $remote_addr;
    proxy_set_header X-Forwarded-Host       $host;
    proxy_set_header X-Forwarded-Server     $host;
    proxy_set_header X-Forwarded-Proto      $scheme;
    proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;
  }
}

nginxを再起動して設定完了!

最後にnginxを再起動すると設定が反映されます。

$ sudo systemctl restart nginx

もう一度アクセスするとproxy_passで設定したサーバーに転送されるようになっています!

あとがき

結構使う場面が多いのでこの記事を見ればすぐに構築できるようにしてみました。

プライベートな環境へアクセスしたいとき、リクエスト元を固定したいとき、など使い方は様々ですね。

手軽に構築できるのでぜひ試してみてください!