Https在网址中需要端口80

时间:2018-12-12 09:40:56

标签: ssl nginx https nginx-reverse-proxy

使用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,它将无法工作。

1 个答案:

答案 0 :(得分:1)

http假定端口80,https假定端口443。如果要浏览器覆盖这些默认值,则必须在URL中指定端口。

正确的解决方案是在端口80上提供http,在端口443上提供https,在这种情况下,不需要在URL中提供该端口,可以从方案中假定该端口( httphttps)。

例如:

server {
    listen  80;
    listen  443 ssl;
    ...
}

有关详细信息,请参见this document