Trojan和Nginx关于443端口的配置

由于之前申请的免费SSL证书,没有加自动更新。今天证书到期就不能再用Trojan了,于是重新安装了certbot,并且加了自动更新脚本,由于装脚本的时候各种报错,就直接把Nginx给停了,后来搞好了就准备启动。

启动Trojan的报错config.json can't open file,嗯,熟悉的味道。直接命令启动也是不行,看了下官网的配置也没啥问题,正在纠结呢,忽然想起来我已经启动了nginx,会不会是443端口被占用了?然后看了下Nginx配置,果然在我装了cerbot脚本后,自动给我加上了SSL证书的配置,并且顺带监听了443.由于之前没手动配过Trojan,都是自动脚本一条龙,现在这玩意和Nginx端口冲突就得研究下了。
先了解下Trojan的工作原理:

Trojan 默认占用服务器的 443 端口,对于 https 的访问请求,Trojan 会判断是不是来自 Trojan 客户端的连接,如果是,则启动代理,访问国际网络,如果不是,则转发自其他端口,如 Nginx 的 80 端口,显示一个网站。

注:本方法出自 Trojan Telegram 群组。

将 Trojan 放 Nginx 前面监听 443 端口处理 SSL 握手 ,再转发自 Nginx 的 80 端口,可以简单实现网站的 https 的访问,但是对于复杂的网站、多 https 站点,如何配置?

根据 #131,Trojan作者提出由2种方法,一种是利用 Nginx 的 stream_ssl_preread 模块,另一种是利用 HAProxy。本文将使用第一种方法。Haproxy 分流方法见这里:使用 HAProxy 复用 443 端口分流代理软件和 Nginx

stream_ssl_preread模块可以让 Nginx 放 Trojan 前面统一监听 443 端口,再转发自 Trojan 端口和其他 https 站点端口,实现 Trojan+Nginx+多https 站点共用 443 端口

像我这种屌丝是不可能搞多HTTPS站点做负载均衡的,那是机场老板才会搞的,所以就简单点,让Trojan监听443,下面就简单了,直接把Nginx的443监听给关掉就行,然后nginx -s reload搞定
Snipaste_2021-03-18_16-41-25.png

嗯,自由的空气

标签: none

添加新评论

ali-01.gifali-58.gifali-09.gifali-23.gifali-04.gifali-46.gifali-57.gifali-22.gifali-38.gifali-13.gifali-10.gifali-34.gifali-06.gifali-37.gifali-42.gifali-35.gifali-12.gifali-30.gifali-16.gifali-54.gifali-55.gifali-59.gif

加载中……