繁体   English   中英

nginx 将 www 重定向到非 www

[英]nginx redirect www to non-www

我的服务器上有 nginx 配置,但是如果使用 example.com 直接访问我的域,我将面临 url 的问题。

另外,如果我尝试使用 www.example.com 直接访问它,它将无法正常工作,并且我收到了此消息

所以主要我有两个问题:将非http重定向到https并将www重定向到非www

我的服务器运行 nodejs 应用程序

无法访问此站点 www.example.com 的服务器 IP 地址无法找到。 DNS_PROBE_FINISHED_NXDOMAIN

server {
    listen               80;
    listen               443 ssl;
    server_name          www.example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot

    return 301 $scheme://example.com$request_uri;
}

server {
    listen  80;
    server_name example.com;
    location / {
    proxy_pass http://127.0.0.1:8080;
    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;
        proxy_redirect off;
     }

    location /api {
      proxy_pass http://127.0.0.1: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;
        proxy_redirect off;
    }


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

要重定向到 https,您应该有一个包含所有配置的服务器块并listen 443 ssl; 在其中,以及另一个配置如下的服务器块:

server {
    return 301 https://$host$request_uri;
    server_name example.com
    listen 80;
}

www 站点是一个不同的域,您应该在 dns 服务器中设置 ip 地址。 您对 www 站点的配置看起来不错

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM