使用Nginx 1.12.1版本 没有端口,没有指定的 URL 将不适用于 Https,即 https://test.domain.com:80
代码如下:
server {
listen 80 default_server;
listen [::]:80 default_server;
ssl on;
server_name ~^(?<subdomain>[^.]+)\.domain.com$;
ssl_certificate /etc/ssl/ssl_certificate.cer;
ssl_certificate_key /etc/ssl/sslnew.key;
root /var/www/$subdomain;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
如果我删除“SSL on”,那么 https 将无法工作,但它可以在没有端口号的情况下工作,即 test.domain.com。
最佳答案
http
假定端口 80,https
假定端口 443。如果您希望浏览器覆盖这些默认值,则必须在 URL 中指定端口。
正确的解决方案是在端口 80 上提供 http
并在端口 443 上提供 https
,在这种情况下,不需要在 URL 中提供端口,可以从方案(http
或 https
)假定。
例如:
server {
listen 80;
listen 443 ssl;
...
}
参见 this document了解详情。
关于ssl - https 需要 url 中的 80 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53740092/