跳至主要内容

阿里云通过Nginx中转Linode/digitalocean/AWS的V2ray协议,实现负载均衡

开篇文的废话.原因是Sandy做站服务器太多了,发现利用率不高,皮又痒了又想折腾了.v2ray是利器但是给人的感觉就是只能用一台服务器,官方也说不支持负载均衡,不会A服务器挂机,自动跳转到B服务器.这里就有点折磨人了.每个服务器挂了都要自己去改配置文件.

我们访问国外的服务器,如果没CN2的线路是非常慢的,起码不快!哈哈~现在VPS都便宜起码人手一个人有5台以上吧?这样的话我们就可以开整.

开整条件:国内VPS或者阿里云有CN2线路的机器最好是100MB-200MB的带宽的.保证你爽歪歪.但是Sandy在阿里云HK30MB下也测试了也可以达到30000KB以上,羡慕吧~我们可以开始了!

老规则工具先出:

没被gwf和谐的服务器1台(下文统称:主服务器)

国外服务器2台以上(下文统称:从服务器)

nginx 1.9.5版本以上(推荐:lnmp1.4)

v2ray croe

第一步:

主服务器安装lnmp1.4,这里就不细说教程了.直接去官方看教程

安装完毕以后我们来升级Nginx让他支持stream模块

cd lnmp1.4
vi lnmp.conf

在Nginx_Modules_Options=‘’里面加入--with-stream

Nginx_Modules_Options='--with-stream’

然后执行升级命令

./upgrade.sh nginx

 第二步

修改nginx.conf文件

cd /usr/local/nginx/conf/nginx.conf

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }

下面加入

stream{
    server{
        listen 0.0.0.0:8080;
        proxy_pass v2ray_backend;
        proxy_timeout 10m;
        proxy_connect_timeout 5000ms;       
    }
    upstream v2ray_backend{
          server  192.168.2.2:8888      max_fails=3 fail_timeout=30s    weight=1;
          server  192.168.2.3:8888      max_fails=3 fail_timeout=30s    weight=1;
          server  192.168.2.4:8888      max_fails=3 fail_timeout=30s    weight=1;
    }
}

server里面的ip是你的被中转服务器

主要配置参数的解释

负载均衡主要的功能都在stream块中

负载均衡方式介绍

Nginx 支持三种负载均衡的方式:Round Robin(简单轮询),Least Connections(最少连接) 和 Least Time(最少时间)

· Round Robin 是默认的方式,不需要在配置文件中特意写出来,可根据权重在后端服务器中依次选择

· Least Connections 最少连接,Nginx 会选择当前活动连接数最少的服务器进行连接,设置如下:

upstream stream_backend {
    least_conn;
    server backend1.example.com:12345;
    server backend2.example.com:12345;
    server backend3.example.com:12346;
}

· Least Time 最少时间,这个是收费版才有的功能,可以选择当前平均延迟低并且活动连接最少的服务器。因为是收费功能所以不再赘述。

其他主要的配置介绍

proxy_timeout 10m

proxy_timeout表示成功与后端建立连接后的超时时间,一旦超过这个时间没有数据传送连接就会关闭。这里设置为10分钟

proxy_connect_timeout 5m

proxy_connect_timeout表示Nginx与后端服务器连接所需的延迟,根据 Nginx 所在的机器和后端服务器的延迟来设置。当然也可以设置的大一些,来容纳一些小幅度的网络波动

max_fails=3 fail_timeout=30s

这个就是被动检测的设置项了,它的意思是在30秒内如果连接失败或者超时3次,那么该服务器就被忽略30秒。看起来的确有些不智能,但是实测下来还是可以接受的。主动检测和 Haproxy 很相似,但是这个功能是付费版才有,在此不做讨论。

 

weight=1

和 Haproxy 相似,这个是权重的意思,不赘述。

第三步

在从服务器端按照v2ray

bash <(curl -L -s https://install.direct/go.sh)

然后调整配置 ,这里我们要注意id和network要一样,而且只支持TCP模式

cd /etc/v2ray/config.json

把端口修改成主服务器设置的端口,v2ray的id要全部服务器一样,否则就不能连接其他点了!

修改完毕以后我们重新启动v2ray服务

service v2ray restart

这样就搞定了.

 

 

评论

  1. 你好,想咨询一下 - lnmp可以只选择nginx吗?

    还是说全部都得装?

    回复删除
  2. 虽然可以, 但是这样是不是 阿里云到v2ray的流量是不加密的?

    回复删除

发表评论

此博客中的热门博文

利用haproxy来做V2RAY负载均衡

Sandy在之前有说过 阿里云通过Nginx中转Linode/digitalocean/AWS的V2ray协议,实现负载均衡 ,有些学童不想折腾nginx,那么我们可以用haproxy来折腾,不管是haproxy还是Nginx都可以在树莓派和局域网的PC机器折腾! 安装haproxy的教程就移步到-> haproxy安装教程 apt-get install haproxy 安装完毕,我们来修改haproxy的配置 vi /etc/haproxy/haproxy.cfg 里面内容全部删除,加入下面的内容 global ulimit-n 51200 log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy pidfile /var/run/haproxy.pid user haproxy group haproxy daemon defaults log global mode tcp retries 3 option dontlognull option redispatch #上游TCP服务器连接等待时间 timeout connect 5s timeout client 24h timeout server 24h #以下为Web管理页面设置,如不需要可以删除 listen admin_stats bind 0.0.0.0:8888 mode http log 127.0.0.1 local0 err stats refresh 30s stats uri /haproxy stats realm welcome login\ Haproxy stats auth admin:admin stats hide-version stat

利用aws最低配置搭建frp内网穿透

利用aws最低配置搭建frp内网穿透 由于最近忙着搬家的时候,一直在考虑如何让2个地区来实现稳定的内网穿透,可以把2边的带宽利用起来!突然想起很早之前和鸟总一起搭建过的frp内网穿透.于是就折腾了起来了. 这次我们利用别人写好的一键脚本吧,自己懒得去编辑frp.ini文件了! 1. 服务器端安装说明(ubuntu 18) wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh chmod 700 ./install-frps.sh ./install-frps.sh install 安装过程中会有提示一些的参数,我们设置好就可以了! Please input frps bind_port [1-65535](Default Server Port: 5443): #输入frp提供服务的端口,用于服务器端和客户端通信,按Enter键表示默认5443,否则手动输入新端口 Please input frps dashboard_port [1-65535](Default dashboard_port: 6443): #输入frp的控制台服务端口,用于查看frp工作状态,按Enter键表示默认6443,否则手动输入新端口 Please input frps vhost_http_port [1-65535](Default vhost_http_port: 80): #输入frp进行http穿透的http服务端口,按Enter键表示默认80,否则手动输入新端口,一般不建议默认80 Please input frps vhost_https_port [1-65535](Default vhost_https_port: 443): #输入frp进行https穿透的https服务端口,按Enter键表示默认443,否则手动输入新端口 Please input privilege_token (Default: WEWLRgwRjIJVPx2kuqzkGnvuftPLQniq): #输入frp服务器和客户端通信的密码,默认是随机生