最近发现访问本站老是出现 ERR_SSL_PROTOCOL_ERROR ,需要刷新多次才行。
搞了一圈发现又是偷懒照成的悲剧:
nginx 站点配置文件中
resolver 8.8.8.8 1.1.1.1 valid=300s;
是照搬国外 VPS 上的,然而本站在国内,8.8.8.8 是不通的 >_ 刷新后用 1.1.1.1 才又可以了 _<
改成
resolver 119.29.29.29 1.2.4.8 valid=300s;
问题解决。
根本原因还是监听端口混乱了。
原 nginx.conf 里面的 steam 块内容:
stream {
map $ssl_preread_server_name $backend_name {
frp.761026.top frp;
default 127.0.0.1:443;
}
upstream frp {
server 127.0.0.1:444;
}
server {
listen 443 reuseport;
proxy_pass $backend_name;
ssl_preread on;
proxy_protocol on;
}
}
原本站 server 块片段:
......
server {
listen 443 ssl reuseport proxy_protocol;
http2 on;
server_name 761026.top;
.......
server 都监听在 0.0.0.0:443 上,由于使用了 reuseport 参数,启动并不会出现重复绑定错误,nginx -t 也不报错,实际就会出问题,改为
......
server {
listen 127.0.0.1:443 ssl reuseport proxy_protocol;
http2 on;
server_name 761026.top;
.......
就好了。