关于 400 Bad Request

2023-01-14 16:10:49 +08:00
 liang00

请教大家一个问题,现在有一个场景,在一个局域网内的一台 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

1525 次点击
所在节点    NGINX
3 条回复
lanternxx
2023-01-14 16:29:30 +08:00
error_page 497 https://domain:9000;
leoleoasd
2023-01-14 16:33:35 +08:00
error_page 497 =307 https://$host:$server_port$request_uri;
liang00
2023-01-14 16:41:00 +08:00
@lanternxx 已解决,感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/908912

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX