我遵循了一些有关在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.com和https://www.mywebsite.com,但是当我尝试使用http版本时,找不到任何内容,或者在chrome上下载了带有一些奇怪字符的文件。任何帮助,将不胜感激。
答案 0 :(得分:1)
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;
}
答案 1 :(得分:0)
该错误似乎是由仅支持HTTP / 2和SSL的浏览器引起的。就我而言,这不是问题,因为我将重定向到安全站点,因此将第一个服务器块的第1行从更改为
listen 80 http2;
到
listen 80;
解决了我的问题,现在重定向有效。