.net - 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.com和https://www.mywebsite.com,但是当我尝试转到 http 版本时,要么什么都找不到,要么在 chrome 上下载了一个文件几个奇怪的字符。对此的任何帮助将不胜感激。
解决方案
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;
}
推荐阅读
- javascript - 重定向弹出窗口并发布消息
- perl - 使用 ExifTool 从两个文件(一个原始文件,一个 XMP)读取
- python - 如何在python中将字符串转换为字节?
- c# - 如何修复“CCertRequest::Submit: RPC 服务器不可用。0x800706ba”错误?
- python - 来自 int(base64.urlsafe_b64decode(mystr)) 的“无效文字”
- node.js - 使用 puppeteer 在 node.js 应用程序上进行密集 pdf 生成任务的可扩展性?
- java - 实例内的 Arraylist 不是私有的
- node.js - 语法错误:在 AngularJS 中替换控制器后出现意外令牌 <
- php - Wordpress 中的 PHP 内部简码函数
- c - 库存计划,可能的边界值问题?