请教大家一个问题,现在有一个场景,在一个局域网内的一台 Liunx 主机上,在 8080 端口运行一个 http 服务,然后用 Nginx 443 端口转发 8080 端口,然后在局域网的出口路由器上配置了端口转发,WAN 端口 9000 转发内网 Nginx 的 443 端口.当访问 https://domain:9000 时是正常的,但是 http://domain:9000 会报"The plain HTTP request was sent to HTTPS port",在网上搜索一番后,大多数解决方法是在 Nginx 上添加一段:
server {
listen 80;
server_name doamin;
return 301 https://$host$request_uri;
}
但好像和我这个情景不太匹配。 下面是我的 Nginx 配置:
map $http_upgrade $connection_upgrade {
default keep-alive;
'websocket' upgrade;
}
server {
listen 443 ssl;
server_name domain;
ssl_certificate /opt/cert/fullchain.cer;
ssl_certificate_key /opt/cert/site.key;
client_max_body_size 500M;
if ($host != "domain") {
return 404;
}
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /notifications/hub {
proxy_pass http://localhost:3012;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
location /notifications/hub/negotitate {
proxy_pass http://localhost:8080;
}
}
请问现在需要做哪些操作可以让 http://domain:9000 自动转到 https://domain:9000
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.