关于nginx流量转发的进阶问题
VPS-A 是GIA+9929,建了网站和vless&trojanVPS-B 是落地鸡,解锁奈飞用的,只建了vless&trojan
我把域名3个域名 blog.domain.com / a.domain.com / b.domain.com 都指向了VPS-A
希望的效果是这样的,都是443端口
使用blog.domain.com,就是正常博客
使用a.domain.com,就是正常上网代理
使用b.domain.com,VPS-A把流量转发到VPS-B 进行上网代理,可以看奈飞
都要崩溃了,试了好多方案都不行啊,代码中的IP 已经做了处理....
QQ 一溜一溜9352
先出100吧,哈哈
方案一
网站的端口我改成了444,ngixn的主配置文件加了这个
默认web服务是可以的,但是trojan不行啊,显示网站不安全
stream {map $ssl_preread_server_name $backend_name { 9929-442.getpocket.in trojan; 9929-ifog.getpocket.in ifog; default web;} upstream web { server 127.0.0.1:444;} upstream trojan { server 127.0.0.1:442;} upstream ifog { server 185.44.83.50:443;} server { listen 443 reuseport; proxy_pass $backend_name; ssl_preread on;}}
方案二
抄了trojan官网的配置,放在nginx主配置中,貌似也不行啊
stream {map $ssl_preread_server_name $name { 9929-ifog.getpocket.in ifog.getpocket.in; 9929-pr.getpocket.in pr.getpocket.in; 9929-442.getpocket.in localhost:442; default localhost:444;}server { listen 443; # 监听 443 端口 proxy_pass$name; ssl_preread on;}}
方案三
抄了这里https://blog.xmgspace.me/archives/nginx-sni-dispatcher.html
ngixn的主配置文件加了这个
stream {map $ssl_preread_server_name $stream_map {9929-442.getpocket.in before_trojan;9929-pr.getpocket.in pr;9929-ifog.getpocket.in ifog;default web;} # #############################################upstream web {server 127.0.0.1:443;}upstream before_trojan {server 127.0.0.1:7442;}upstream trojan {server 127.0.0.1:442;}upstream pr {server 204.152.210.23:443;}upstream ifog {server 185.44.83.51:443;}# #############################################server {listen 23.224.46.62:443 reuseport;proxy_pass $stream_map;ssl_preread on;proxy_protocol on;}server {listen 127.0.0.1:7442 proxy_protocol;proxy_pass trojan;}}
但是# Web服务器的配置的配置不知道放哪里啊,放哪到报错啊...
server {listen 80;# 我们只对443端口进行SNI分流,80端口依旧做Web服务;SNI分流也只能在443端口上跑TLS流量才能分流listen 127.0.0.1:443 ssl http2 proxy_protocol;# 监听本地443端口,要和上面的stream模块配置中的upstream配置对的上,开启Proxy protocolif ($ssl_protocol = "") {return 301 https://$host$request_uri;}index index.html index.htm index.php;try_files $uri $uri/ /index.php?$args; set_real_ip_from 127.0.0.1;# 从Proxy protocol获取真实IPreal_ip_header proxy_protocol;}
最后一个方案直接报错了..
stream{ upstream web { server 127.0.0.1:444; } upstream trojan { server 127.0.0.1:442; } upstream pr { server 204.152.210.23:443; } server{ listen 443; listen 443 udp; server_name9929.getpocket.in; proxy_pass web; } server{ listen 443; listen 443 udp; server_name9929-442.getpocket.in; proxy_pass trojan; } server{ listen 443; listen 443 udp; server_name9929-pr.getpocket.in; proxy_pass pr; }} 你搞清楚,第一篇文章并没有复用端口。你的需求是复用端口,根据SNI分流,得用这个模块
ngx_stream_ssl_preread_module
如果你梯子用ws或者h2的话,我更建议根据路径分流,这样就不需要考虑源IP的问题了 为什么非要用nginx呢
我都是用宝塔每个站单独配置文件方便 没明白 你是哪里失败了 还是全部都失败了 micms 发表于 2022-2-13 00:04
没明白 你是哪里失败了 还是全部都失败了
就是第二和第三不行…
如果方法可以的话我在试试…试了两次了,所以先确认方法是不是有问题 帮顶 A 服务器 安装宝塔面板,然后设置反代
a.domain.com => 本机 vless
b.domain.com => 落地机 vless a机vless做前置代理监听443,属于vless的流量正常代理,不属于vless的流量回落至博客。b机奈飞解锁机使用dnsmasq+sniproxy,a机vless进行dns分流,属于奈飞的流量给b机,不属于的正常代理 那A机是不是直接这样就可以了?
https://hostloc.com/thread-866922-1-1.html
我的想法是都通过流量转发来解决,可以吗? 这不就是最基本的按域名转发到不同的后端吗?upstream
页:
[1]