2016-12-06 12 views
1

私は最近プライマリドメインでうまく動作するLetsEncrypt SSL証明書をインストールしましたが、仮想ホストとして設定されている他のサブドメインもあります。しかし、サブドメインへのトラフィックはすべてhttpsにリダイレクトされ、ブラウザはプライバシーに不満を持ちます。nignxのhttpsからサブドメインを除外する方法は?

マイプライマリドメイン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

のようなものである
関連する問題