使用Nginx 1.12.1版本
没有端口,没有指定的URL将不适用于Http,即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/