2016-08-16 150 views
0

如果有人願意向我提供關於如何讓NGINX發揮出色的技巧,我會很高興。我想重定向https://www.subdomain.domain.com,但不幸的是,現在還不適合我。如何強制重定向www到非www的SSL子域

請注意以下幾點設立NGINX,我在的/ etc/nginx的/網站可用/默認

server { 
    listen 443 ssl; 

    server_name subdomain.domain.com; 

    ssl_certificate /etc/letsencrypt/live/subdomain.domain.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/subdomain.domain.com/privkey.pem; 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_prefer_server_ciphers on; 
    ssl_dhparam /etc/ssl/certs/dhparam.pem; 
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-$ 
    ssl_session_timeout 1d; 
    ssl_session_cache shared:SSL:50m; 
    ssl_stapling on; 
    ssl_stapling_verify on; 
    add_header Strict-Transport-Security max-age=15768000; 

    server_name subdomain.domain.com; # Replace with your domain 
    root /home/dropshare/public_html; 
    index index.html index.htm; 
    client_max_body_size 10G; 

    location ~ /.well-known { 
      allow all; 
    } 
} 

server { 
    listen 80; 
    server_name subdomain.domain.com; 
    return 301 https://subdomain.domain.com$request_uri; 
} 

server { 
    listen 443 ssl; 
    server_name subdomain.domain.com; 
    return 301 https://subdomain.domain.com$request_uri; 
} 
+0

我不明白,你已經嘗試重定向'www.subdomain。 domain.com'? –

+0

無論如何,首先你**必須擁有有效的域名「www.subdomain.domain.com」的證書。 –

+0

你的配置文件或你的問題有點混亂。您在最後一個服務器塊(我假定它是「www.subdomain.domain.com」)中的一個「服務器」塊和「server_name subdomain.domain.com」中有'server_name'指令的重複,請編輯您的問題並澄清。 –

回答

2

你的配置是無效的,由nginx的拒絕。

你有兩個相同的虛擬服務器:

server { 
    listen 443 ssl; 

    server_name subdomain.domain.com; 
... 
server { 
    listen 443 ssl; 
    server_name subdomain.domain.com; 

,其中一人只是重定向到自身:

server { 
    listen 443 ssl; 
    server_name subdomain.domain.com; 
    return 301 https://subdomain.domain.com$request_uri; 
}