使其成为Nginx始终使用https的网站

时间:2018-09-07 01:35:13

标签: nginx

注意:example.com就是这样。根据stackoverflow的规则,我没有使用实际的域。

我一直在尝试获取它,因此单个站点的Nginx服务器始终使用https。

我已经安装了证书,并且如果使用以下方法查看站点:

https://www.example.com正常。

但是默认情况下,它会转到http并将网站显示为不安全。

这是配置:

server {
        listen 80 default_server;
        listen [::]:80 default_server ipv6only=on;

        root /var/www/nodeapp;
        index index.html index.htm;

        server_name www.example.com example.com;

        location / {
          proxy_pass https://[IP address here]:3000;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection 'upgrade';
          proxy_set_header Host $host;
          proxy_cache_bypass $http_upgrade;
        }
}

我基本上希望所有内容都指向https://www.example.com

1 个答案:

答案 0 :(得分:0)

因为您的网站同时具有http和https。 (80端口和443端口)。
要激活唯一的https,您必须删除http的配置。
请删除listen 80并改用listen 443
如果您要将所有流量重定向到https, 您可以按如下所示添加重定向配置。

server{
    if ($host = your_domain) {
       return 301 https://$host$request_uri;
    }

    server_name  your_domain;
    listen 80;
    return 404; 
}

我假设您的配置在主配置中有ssl部分。
例如,

listen 443 ssl;
ssl_certificate /etc/***/fullchain.pem; 
ssl_certificate_key /etc/**/privkey.pem; # managed by Certbot
ssl_dhparam /etc/**/ssl-dhparams.pem; # managed by Certbot