- 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サービスです。
コメント