[Sy] nginxでhttpへのアクセスをhttpsにリダイレクトさせるための設定
2015/07/17
nginx(リバースプロキシとして利用)でhttp://
へのアクセスをhttps://
にリダイレクトさせるための設定について。
まずはhttpsのみのアクセスを受け付ける設定の/etc/nginx/nginx.conf
がこうだとして、
server {
listen 443;
ssl on;
ssl_certificate /etc/pki/CA/example.crt;
ssl_certificate_key /etc/pki/CA/example.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
server_name www.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
このままだとhttp(80番ポート)へのアクセスを受けられないので、以下の部分を追記して80番ポートへのアクセスをすべてhttpsとしてリダイレクトさせるように設定します。
# ↓ここから
server {
listen 80 default;
server_name www.example.com;
return 301 https://$host$request_uri;
}
# ↑ここまで
server {
listen 443;
ssl on;
ssl_certificate /etc/pki/CA/example.crt;
ssl_certificate_key /etc/pki/CA/example.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
server_name www.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
そしてnginxを再起動してあげればOKです。
$ sudo /etc/init.d/nginx restart