迁移了一个 headscale 服务端,反向代理配置了 headscale-ui 的静态页面
我将 centos 7 中的 nginx v1.20.1 配置迁移到了 rocky linux 9 中的 nginx v1.26.2 中,
使用的均为 rpm 包
nginx v1.20.1 是官方源中下载
nginx v1.26.2 是从 nginx 源中下载
迁移之后 headscale 被反向代理后的 8082 端口就无法访问了,但是原生的 8080 端口可以访问,
两个站点配置完全一样,是直接复制过去的
新版本的 nginx 日志中没有相关访问日志
并且 nginx 的主要更新日志,并没有什么头绪,所以发帖请教一下各位
以下是日志与配置
站点主要配置如下
server {
listen 8082 ssl ;
listen [::]:8082 ssl ;
server_name xxxx;
root /opt/headscale/headscale-ui/web;
# SSL
ssl_certificate /etc/nginx/cert/xxxx.crt;
ssl_certificate_key /etc/nginx/cert/xxxx.key;
ssl_protocols TLSv1.2 TLSv1.3;
# logging
# 这里其实有日志配置,但是不知道放进来就不能发帖
location /web {
alias /opt/headscale/headscale-ui/web;
index index.html;
}
# reverse proxy
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $server_name;
proxy_redirect http:// https://;
proxy_buffering off;
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 $http_x_forwarded_proto;
add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
}
}
headscale 的部分日志如下
Nov 01 17:13:17 xxxxxx tailscaled[2145341]: control: LoginInteractive -> regen=true
Nov 01 17:13:17 xxxxxx tailscaled[2145341]: control: doLogin(regen=true, hasUrl=false)
Nov 01 17:13:17 xxxxxx tailscaled[2145341]: Received error: fetch control key: Get "https://xxxxxx:8082/key?v=106": read tcp 192.168.2.199:36346->xx.xx.xx.xx:8082: read: connection reset by peer
Nov 01 17:13:17 xxxxxx tailscaled[2145341]: health(warnable=login-state): error: You are logged out. The last login error was: fetch control key: Get "https://xxxxxx:8082/key?v=106": read tcp 192.168.2.199:36346->xx.xx.xx.xx:8082: read: connection reset by peer
nginx 的版本信息如下
旧服务器
nginx version: nginx/1.20.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.1.1k FIPS 25 Mar 2021
TLS SNI support enabled
新服务器
nginx version: nginx/1.26.2
built by gcc 11.4.1 20231218 (Red Hat 11.4.1-3) (GCC)
built with OpenSSL 3.0.7 1 Nov 2022
TLS SNI support enabled
详细的编译参数放不进去,如果有需要的话,后续考虑截图放在后面
1
kaf 7 天前
你有看看 http 的配置一样吗
|
2
kk2syc 7 天前
connection reset by peer
笑 cry ,你真的不考虑是新机器的网络问题吗?(大概率是 dns ) |
3
KadeDivent OP |
4
kk2syc 7 天前
@KadeDivent 可以肯定和 nginx 的版本升级没有关系
|
5
zed1018 7 天前
如果我没有理解错,你这个应该是 nginx 提供 https 卸载 http 明文到 8080 ,我看了一下我之前用 nginx 这么反代 java api 的时候,只配置了这些 proxy 相关的头,op 可以试试
``` proxy_set_header Host $http_host; proxy_set_header Connection ""; 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_read_timeout 180s; ``` |
6
xqzr 6 天前 1
> read: connection reset by peer
考虑 SNI 阻断 |
7
devopsdogdog 5 天前 via Android
大概率网络问题,或者是 ssl 指定了 1.2 1.3 要求这么高吗?新老版本的依赖 openssl 差距也比较大
|
8
KadeDivent OP @xqzr 感谢,测试了一下就是 SNI 阻断,不明白为什么国内的服务器也会这么做,正在和客服对线中
|
9
xqzr 3 天前
> 不明白为什么国内的服务器也会这么做,正在和客服对线中
域名未备案。 |