【伺いたいこと概略】
server { listen 443 default ssl; server_name example.com; ssl on; 以下、略 }
listen 443 default ssl;の「default」とはどういう意味でしょうか?
【やりたいこと】
httpsを含むwwwありなしへのアクセスを下記のように統一したい
http://example.com → https://example.com
http://www.example.com → https://example.com
https://www.example.com → https://example.com
【修正前】
server { listen 80; listen [::]:80; server_name example.com; return 301 https://$host$request_uri; } server { listen 80; listen 443; server_name www.exmaple.com; return 301 https://$host$request_uri; } server { listen 443 default ssl; server_name example.com; ssl on; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; }
【修正後】
server { listen 80; listen [::]:80; server_name example.com; return 301 https://$host$request_uri; } # http(s)://www.example.comへのアクセスをリダイレクト server { listen 80; listen 443; server_name www.exmaple.com; # 追記 ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem; return 301 https://example.com$request_uri; } server { listen 443 ssl default_server; #修正 server_name example.com; ssl on; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; }
wwwありなしのリダイレクトを行うために色々調べながら、上記の記述で目的は達成することができました。
return 301の記述は理解できるのですが、質問冒頭のdefault部分の意味が理解できず...
defaultの記述を外すとサイト自体にアクセスが出来なくなります。
調べると default_serverの説明がたくさんヒットするのですが、default_serverとは違うような気もします。
nginxに詳しくなくふわっとした質問で申し訳ないのですが、よろしくお願いします。
【参考にしたサイト】
常時SSL化 nginx でリダイレクト www ありに統一
Nginx で http も https も IP 直打ちのアクセスを弾きたい←追記
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/01 09:52
2019/02/01 09:57