下面是基本的想法。
server {
server_name mydomain.in www.mydomain.in;
listen 80;
location / {
return 301 https://mydomain.in$request_uri;
}
}
server {
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/mydomain.in/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.in/privkey.pem;
server_name mydomain.in www.mydomain.in;
access_log /var/log/nginx/mydomain.in.access.log rt_cache_redis;
error_log /var/log/nginx/mydomain.in.error.log;
root /var/www/mydomain.in/htdocs;
index index.php index.html index.htm;
include common/redis-php7.conf;
include common/wpcommon-php7.conf;
include common/locations-php7.conf;
include /var/www/mydomain.in/conf/nginx/*.conf;
}
顶端
server
块
listen
S在端口
80
(http)。它有一个
location
做一个
return
301号。
返回
优先于重写
most cases
.我也把它放进
位置
因为你有一个
letsencrypt
可能需要另一个
location ^~ /.well-known {
阻止以帮助处理该问题。
第二次
服务器
块
听
S在端口
443
(https)。它有ssl证书,并包含以前作为http公开的信息。
服务器
封锁。
此安装程序将处理从
http
要么
mydomain.in
或
www.mydomain.in
到
https
我的域.in
是的。打开
https协议
二者都
我的域.in
和
www.mydomain.in网站
将接收SSL请求。
如果您希望它重定向到主https域,可以像这样为辅助域添加另一个服务器块。
server {
server_name www.mydomain.in;
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/mydomain.in/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain.in/privkey.pem;
location / {
return 301 https://mydomain.in$request_uri;
}
}
当然,这意味着你必须改变第二个
服务器
阻止删除辅助域名。
同时在测试时,您可能希望更改
301
S至
302
这样,如果您第一次错误地认为它不会卡在浏览器缓存中。当你把一切都恢复到良好状态后,再换回
301个
S.