前两天在github上发现了一个好玩意儿,就是S-UI面板https://github.com/alireza0/s-ui。
这玩意儿贼便利!可以说是一键导入多种xray配置,省去你自己写json的麻烦。于是乎赶紧安排上,哦不!是安装上。
装好之后先配置个reality试试吧。哦不!怎么提示443端口被占用呢?
追查了一下元凶,原来是被我这个站点的nginx占用了。
这个好办啊,把nginx停掉就完事儿了。哦不!我这站点还得留着呀!
那咋办好呢?于是去问AI的意见。kimi说可以利用stream层的sni导流,复用443端口。
哇!这个姿势优雅,我来学着摆一个试试!
于是动手安装stream,添加sni配置,这点工作小菜一碟呀,很快就弄完了。
弄完之后发现,哦不!我的网站打不开了!!!
这是咋搞的?就添加了个sni,咋就把网站弄没了呢?!
于是乎开始了和多个AI长达两天的纠错之旅。
AI们也是使出浑身解数,一个问题一个问题的排查,结果愣是查不出原因!
AI分析得是头头是道,可网站就是找不回来。
车轱辘话翻来覆去地说了无数遍,就是不能说到点子上。
最后我灵机一动,把建站的来龙去脉跟元宝讲了一通,元宝终于明白了我网站的基本架构:
原来是用nginx作为前端,接受各种请求,如果是网站的请求就反向代理给后端的apache,apache再连接Wordpress打开网页。
了解到这一结构后,问题也就明确了,因为用nginx的stream块做sni分流,但转发的是加密的https流量,而作为后端的apache监听的是8080端口,是没法处理加密流量的。
找到了问题的症结,修起来就容易了。元宝给了我两个建议,一个是还原经典架构,不要用 SNI 分流,这个我不能接受啊!那就第二个吧,什么?让apache配置SSL,处理HTTPS请求,这也忒麻烦了吧。
咦?竟然还有第三条道路!?作为折中方案,元宝建议可以在 Nginx 的 stream 模块中做 SNI 分流,但把流量转发到另一个 Nginx(HTTP 层),这招儿妙哈!
说干就干!先把nginx设置的server块里转发apache的端口改为8081(因为如果不改,端口会冲突),然后去apache的设置文件ports.conf里也把监听端口改为8081,再把apache的VirtualHost 的端口也改为8081。配置好后reload一下apache的服务。
哈哈!
激动人心的时刻来了!我胡汉三又回来啦!