使用HTTPS

时间:2016-12-15 06:45:31

标签: nginx https

是否可以在nginx中重写HTTPS通配符域,还是应该为每个域创建多个结构/文件?

让我说我有以下几点:

1. subdomain1.domain.com
2. subdomain2.domain.com

如果我没有HTTPS,我使用了以下功能:

server {
 listen 443;
server_name *.domain.com;
charset utf-8;
}

不,如果我使用HTTPS,我将不得不写一个像以下一样的新块(使用letsencryt)

以下只是一个测试域(只有1个域)

 server {
    server_name test.me;
    rewrite ^ https://test.me$request_uri? permanent;
}

server {
    listen 443;
    server_name test.me;
    charset utf-8;
    ...
 }

是否可以对多个域执行相同的操作?      服务器{         server_name .domain.com;         重写^ https:// .domain.com $ request_uri?常驻;     }

server {
    listen 443;
    server_name *.domain.com;
    charset utf-8;
    ...
 }

我尝试了上面的配置,但它不起作用,它将我重定向到

https://%2A.domain.com.domain.com/  (just for test)

有可能做这样的事吗?或者我是否应该为每个子域设置不同的块?

1 个答案:

答案 0 :(得分:1)

使用nginx提供的其中一个变量从请求行中提取主机名。例如$host(有关详细信息,请参阅this document):

server { 
    server_name .domain.com;
    return 301 https://$host$request_uri;
}