2016-12-06 6 views
1

Недавно я установил сертификат LetsEncrypt SSL, который отлично работает на моем основном домене, но у меня есть и другие поддомены, которые настроены как виртуальные хосты. Однако весь трафик на субдомен теперь перенаправляется на https, что приводит к тому, что браузеры жалуются на конфиденциальность.Как исключить субдомены из https-переписывания на nignx?

Моя основная конфигурация домена Nginx выглядит следующим образом:

server {                            │ 
     listen 80;                         │ 
     server_name domain.com www.domain.com;                   │ 
     return 301 https://$server_name$request_uri;                 │ 
}                              │ 
                                 │ 
server {                            │ 
     # Basic configuration                       │ 
     listen 443 ssl;                        │ 
     server_name domain.com www.domain.com;                  │ 
     passenger_enabled on;                       │ 
     passenger_app_env development;                    │ 
     root /home/user/path_to_app/public;                  │ 
                                 │ 
     # Required for LetsEncryptSSL certificate                  │ 
     location ~ /.well-known {                      │ 
         allow all;                     │ 
     }                            │ 
                                 │ 
     # Include SSL config                       │ 
     include snippets/ssl-domain.com.conf;                  │ 
     include snippets/ssl-params.conf;                    │ 
}  

И мой поддомен конфигурации, как это:

server {                            │ 
     #listen 80 default_server;                     │ 
     server_name app1.domain.com;                     │ 
     passenger_enabled on;                       │ 
     passenger_app_env development;                    │ 
     root /home/app1/app1/public;                     │ 
}  

ответ

0

Я думаю, что единственный шанс сделать это определить server_name, как регулярное выражение в первая скобка. То есть, что-то вроде этого

server {                            
     listen 80;                
     server_name ^(www\.domain\.com|domain\.com)$; 
     return 301 https://$server_name$request_uri; 
     } 

http://nginx.org/en/docs/http/server_names.html