首页 > 解决方案 > Nginx - 将 HTTP 重定向到 HTTPS

问题描述

我遵循了一些关于在 Lightsail 上设置 .Net Core 服务器以及如何为 Nginx 设置 SSL 的教程,得到以下“默认”配置文件:

server {
    listen 80 http2 default_server;
    root /var/www/mywebsite/wwwroot;
    server_name mywebsite.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    root /var/www/mywebsite/wwwroot;
    ssl_certificate /etc/letsencrypt/live/www.mywebsite.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.mywebsite.com/privkey.pem;
    location / {
        proxy_pass http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $http_host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

我目前能够连接到https://mywebsite.comhttps://www.mywebsite.com,但是当我尝试转到 http 版本时,要么什么都找不到,要么在 chrome 上下载了一个文件几个奇怪的字符。对此的任何帮助将不胜感激。

标签: .nethttpnginxnetworking

解决方案


Try this:

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

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name www.example.com; 
    ssl on;
}

推荐阅读