NginxでSSL接続をリバースプロキシする方法・設定

  • NginxのSSL接続をリバースプロキシさせたい
  • Let `sEncryptを使ったSSL接続をしている

前にCentOSに入れたNginxでLet’sEncryptを使ってSSL接続する方法を書きましたが、今回はそのSSL接続をリバースプロキシさせるための方法を書きます。

Nginxで建てたWEBサーバーにSSLで受けた接続を、サーバー内の8000番ポートにリバースプロキシさせてみたいと思います。

この記事でわかること
  • Nginxでリバースプロキシを行う設定方法
目次

前提条件

NginxでSSLリバースプロキシをする方法ですが、以下を前提条件として進めます。

前提条件
  • Nginxで利用可能なドメインでアクセス可能
  • Let’s Encrypt等を使ったSSL接続が可能

Nginxのインストールや、SSL接続についてはこちらの過去記事を参考にしてください。

Nginxのリバースプロキシの設定

Nginxのリバースプロキシを設定するにはSSL接続のときにも編集したserver.confを編集します。

/etc/nginx/conf.d/server.confに以下の追記を行います。

# http redirect to https
server {
  listen 80;
  server_name hirooooo-lab.com;
  return 301 https://$host$request_uri;
}

server {
  listen 443 ssl;
  ssl_certificate     /etc/letsencrypt/live/hirooooo-lab.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/hirooooo-lab.com/privkey.pem;
  server_name hirooooo-lab.com;
  root /usr/share/nginx/html;
  index index.html;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $host;
  proxy_redirect off;
  proxy_max_temp_file_size 0;
  location / {
     proxy_pass http://localhost:8000;
  }
}

※リバースプロキシの設定箇所はハイライトしています。

上記の例ではhirooooo-lab.comにアクセスした場合に、localhost:8000へリバースプロキシを行っています。

locationで指定した[/]ルートにアクセスがあった場合に、proxy_passで指定した[http://localhost:8000]へリバースプロキシしています。

あとはNginxをrestartすればリバースプロキシの設定は完了です。

Nginxのリスタート

$ sudo systemctl restart nginx

リスタートしてもダメな場合はリロードコマンドをやってみましょう。

$ sudo nginx -s reload

NginxでSSL接続をリバースプロキシする方法のまとめ

以上でNginxでSSL接続をリバースプロキシする方法になります。

基本的にはserver.confに設定を追記するだけで完了です。

完全に自分の為の備忘録記事ですが、誰かの参考になれば幸いです。

まとめ
  • Nginxでリバースプロキシするには、server.confを設定
  • locationに指定したアクセスをproxy_passでリバプロしたい接続先に渡す

サーバー構築にオススメのVPS

気軽にサーバーを構築したい場合に、すぐに使えるConoha VPSがオススメです!

SSDの高速サーバーが初期費用無料で低価格でサーバーを持つことができます。

プランリニューアル&容量増量!【衝撃価格】月額620円のConoHa VPS【512MBプラン】

私も実際にConohaVPSを使ってますが、値段的にも機能的にもオススメできるVPSサービスです。

よかったらシェアしてね!

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次
閉じる