NGINX 求助 禁止访问 https://ip 后,前端机器 proxy 502

2022-04-06 14:36:20 +08:00
 ab
为关闭 ip 直接访问,我们在后端机器的 nginx 添加配置

原配置:
server {
listen 80 default_server;
listen 443 ssl http2 default_server;
server_name _;
ssl_certificate cert/empty.crt; #自签假证
ssl_certificate_key cert/empty.key; #自签假证
return 444;
}


新配置:
server {
listen 80 default_server;
listen 443 ssl http2 default_server;
server_name _;
ssl_reject_handshake on; # nginx 1.19 新参数
return 444;
}


改了新配置以后,前端反代某个已在后端绑定的域名时,80 端口可以正常请求到,但 443 全部 502 ,请老哥们赐教了
2297 次点击
所在节点    NGINX
14 条回复
ZE3kr
2022-04-06 14:38:12 +08:00
看 errorlog
Judoon
2022-04-06 14:44:38 +08:00
前端反代 443 时向后端也是 443 访问吗?那目测直接握手拒绝了,建立连接时没有带 SNI 信息吧?
ab
2022-04-06 14:48:31 +08:00
@Judoon 是的,直接反代 403

proxy_cache off;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header Referer $http_referer;
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_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
ab
2022-04-06 14:48:52 +08:00
@Judoon 是的,直接反代 443
Judoon
2022-04-06 14:52:30 +08:00
angryfish
2022-04-06 15:20:59 +08:00
将 80,443 配置成两个 server 块。443 类似你原来的配置。
cnrting
2022-04-06 15:21:44 +08:00
ssl_reject_handshake on; 没用过这参数,可是看字面意思返回 502 难道不是正常反应吗
ab
2022-04-06 15:29:22 +08:00
5 楼正解
非常谢谢 @Judoon

@angryfish
@cnrting

ssl_reject_handshake on;这个参数是没有绑定域名的访问拒绝握手。前端需要向后端发送 SNI 信息

添加以下两行解决
proxy_ssl_server_name on;
proxy_ssl_name $host;
Silently
2022-04-06 16:15:54 +08:00
@ab 如果有多个 location 块的话 是需要每个都添加么 还是单 /这个块添加
Silently
2022-04-06 16:18:59 +08:00
@Silently 我看说明是可以直接添加到 server 块上
ab
2022-04-06 21:19:48 +08:00
我是加在 server 段,只用来禁用非绑定的域名
ab
2022-04-06 21:19:59 +08:00
Silently
2022-04-06 22:05:07 +08:00
@ab 用上了 谢谢
yxnwh
2022-04-07 07:51:29 +08:00
多谢,mark 一记,之前也遇到了类似问题

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

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

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

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

© 2021 V2EX