https www 到非 www (NGINX)

时间:2021-01-25 10:01:07

标签: node.js nginx mern

我对这一切都不熟悉,但是如何将我的从 www 重定向到非 www。我尝试了多种方法在 NGINX 中修复它,但无论我如何更改它,仍然有一个 www 和一个非 www 站点。支付网关在交易后被重定向到非 www 网站。

server {
    server_name example.com www.example.com;
    location / {
    proxy_pass http://123.0.0.1:5000;
        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/dineshudayan.tech/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/dineshudayan.tech/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
}
server {
    if ($host = example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = www.example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name  www.example.com;
    return 404; # managed by Certbot

   


}

server {
    listen 80;
    server_name admin.example.com www.admin.example.com;
    location / {
        proxy_pass http://123.0.0.1:8000;
        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;
     }
}

1 个答案:

答案 0 :(得分:1)

@richard-smith 是对的;这是一个带有一些评论的完整示例:

# Your default server - assuming DNS is set up correctly
# will serve http & https requests for any *.example.com
# hosts and redirect to them to https://example.com
server {
    listen  80 default_server;
    listen  443 ssl default_server;

    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/dineshudayan.tech/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/dineshudayan.tech/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    # redirect all requests to https://example.com
    return  301 https://example.com$request_uri;
}

# http server for example.com
# - will redirect requests to https://example.com
server {
    listen  80;

    server_name example.com;

    # redirect all requests to https://example.com
    return  301 https://example.com$request_uri;
}

# Your example.com https server
server {
    listen  443 ssl;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/dineshudayan.tech/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/dineshudayan.tech/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
相关问题