1
我試圖讓nginx的HTTP重定向://WWW.example到https://例(SSL/HTTPS和非www)
http://www.domain
https://www.domain
http:// domain
https:// domain
所有重定向到4 https://domain
3和4都在4
1和2結束 - 不要在第4
我還試圖使用S3桶和CloudFront的做WWW到非www重定向結束,但不幸的是,這會導致證書問題。
這是我目前在我的nginx的配置:
server {
listen 80;
server_name www.{{ nginx_server_name }} {{ nginx_server_name }};
return 301 https://{{ nginx_server_name }}$request_uri;
}
server {
listen 443;
server_name www.{{ nginx_server_name }}
ssl on;
charset utf-8;
ssl_certificate {{ certbot_output_dir }}/{{ letsencrypt_cert_filename }};
ssl_certificate_key {{ certbot_output_dir }}/{{ letsencrypt_privkey_filename }};
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-..........
ssl_prefer_server_ciphers on;
return 301 https://{{ nginx_server_name }}$request_uri;
}
server {
listen 443;
server_name {{ nginx_server_name }};
ssl on;
charset utf-8;
ssl_certificate {{ certbot_output_dir }}/{{ letsencrypt_cert_filename }};
ssl_certificate_key {{ certbot_output_dir }}/{{ letsencrypt_privkey_filename }};
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-..........
ssl_prefer_server_ciphers on;
嗨斯蒂芬 的參數是ansible變量 nginx_server_name:domain.com 此外,將在第二服務塊你所描述的不是嗎? ,即這幾行會在https上用主機名監聽www.domain.com 服務器監聽443; server_name www。{{nginx_server_name}} ssl on; –
如果您在返回301 ...行中指定域,它將修復您的問題。因爲它是一個參數,它會一直匹配。 – Stephan