要点
1. 跟上游建立连接必须发送SNI,因为任播节点必须通过SNI来判断你要访问什么,也就是
proxy_ssl_server_name on;
2. 貌似要指定一个用来解析上游名称的DNS服务器,也就是
resolver 8.8.8.8 8.8.4.4 valid=300s;
3.假如你跟我一样Uri的Path部分是另一个Uri的话,上游收到的路径会少一个正斜杠,也就是
https://a.com #变成 https:/acom
极简的主配置文件
events { } http { # HTTPS server # server { #服务器侦听的端口 listen 443 ssl http2; #证书和私钥 ssl_certificate cert.pem; ssl_certificate_key cert.key; #假如上游使用域名而不是地址需要用它设置DNS服务器(貌似) resolver 8.8.8.8 8.8.4.4 valid=300s; location / { proxy_set_header Connection ""; proxy_http_version 1.1; proxy_ssl_protocols TLSv1.2 TLSv1.3; #有些上游必须发送SNI否则无法建立连接 proxy_ssl_server_name on; #类似于生成 https://www.a.com/https://www.b.com/a/b/index.html #但是变成Path的Uri会少一个反斜杠,在远程端要加上 #类似于变成了 /https:/www.b.com/a/b/index.html proxy_pass https://raspy-rain-5477.leikaifeng.workers.dev/$scheme://$host$request_uri; } } }
Windows如何杀死nginx进程
使用命令
@taskkill /f /im nginx.exe
如何使用openssl签CA与TLS证书
https://stackoverflow.com/questions/7580508/getting-chrome-to-accept-self-signed-localhost-certificate?page=1&tab=votes#tab-top
nginx反向代理模块文档
https://nginx.org/en/docs/http/ngx_http_proxy_module.html