Nginx 配置 多个VSFTP的loadbalance

原创 2016年06月01日 10:51:58

Nginx是个Reverse Proxy,具体干什么的就不多说了,好处是哪些,也不多说了

该方案是2个FTP的实例:

FTP1:192.168.0.3

FTP2:192.168.0.4

1个Nginx实例

内网IP:192.168.0.2

公网IP:23.75.23.40



Nginx 绑定外网IP 23.200.85.32,监听21端口,把数据转发到FTP1,和FTP2的实例上,按照默认的round-robin进行负载均衡

stream {
    server {
        listen  23.200.85.32:21;
        proxy_pass ftp_cluster;
        proxy_buffer_size 16k;
    }
   upstream ftp_cluster{
        zone ftp_cluster 64k;
        server 192.168.0.3:21;
        server 192.168.0.4:21;
    }
}


VSFTP配置

根据FTP协议,FTP将使用2种端口:

1控制端口:21 ,当你登录,或者改变目录,下发拷贝上传等命令使用的是控制端口

2数据端口:随机分配,也可指定。进行数据传输,使用该端口

2种模式:

主动模式:客户端告诉FTP服务器,当前操作分配的数据端口是多少,你来建立连接传输数据

被动模式:FTP服务器告诉客户端,当前操作我监听的哪个端口,你来连接,我将发送数据,在NAT下,被动模式才能工作

当成功登录以后,会把所有的操作发到21端口,然后在响应阶段,再告诉客户端,PASV端口是多少,包如下:

最后在协商的数据端口上进行数据传输,

而每次分配PASV端口都是不一样

所以对于NGINX,它是局域绑定的IP和端口,协议进行代理的,所以如果端口随机分配,那么对于NGINX不好做配置文件

所以在VSFTP的配置里,我们需要加入端口分配规则和proxy_IP 设置

FTP1:配置 (端口范围为10000-10009)

pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10009
pasv_address=23.200.85.32---这个配制成proxy的监听IP

FTP2:配置(端口范围为10010-10019)

pasv_enable=YES
pasv_min_port=10010
pasv_max_port=10019
pasv_address=23.200.85.32


具体部署,可以分配更大的范围,但注意2个FTP的端口范围不要重叠


最后需要在nginx的监听里,加上上述端口的映射,例如

server {
        listen     23.200.85.32:10000;
        proxy_pass  192.168.0.3:10000;

    }

......

 server {
        listen     23.200.85.32:10009;
        proxy_pass  192.168.0.3:10009;
    }

    server {
        listen     23.200.85.32:10010;
        proxy_pass  192.168.0.4:10010; 注意IP地址换了,根据port分配规则

    }

   ......

    server {
        listen     23.200.85.32:10019;
        proxy_pass  192.168.0.4:10019;
    }

这只列出了一部分,有多少个端口就得列出多少个map,并且没有表达式可以实现这个功能

https://forum.nginx.org/read.php?2,267238,267251#msg-267251

如果你不配置nginx,可以加上防火墙的转发规则,也可以实现这个功能






NGINX通过Stream转发ftp请求

一、NGINX 1.9之前,需要安装第三方的TCP插件: http://www.cnblogs.com/i-blog/p/6165378.html 二、1.9之后直接使用Stream配置就可以了,...
  • errizh
  • errizh
  • 2017年09月11日 18:45
  • 1318

nginx+ftp实现图片的上传与访问

根据项目的开发要求,使用ftp实现上传图片,通过nginx搭建图片服务器,即对nginx的简单功能的一种应用。       关于vsftp和nginx的安装就不在这里详细演示,下面的代码是关于ngi...
  • lxy344x
  • lxy344x
  • 2016年07月06日 15:20
  • 11139

nginx反向代理结合FTP搭载文件服务器

(转载表明出处——牟云飞) Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,我们通过与FTP的结合,搭建文件服务器。一个项目中含有许多静态资源,以图片...
  • myfmyfmyfmyf
  • myfmyfmyfmyf
  • 2016年10月22日 19:44
  • 4844

nginx和ftp

Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器(可以做负载均衡),也是一个IMAP/POP3/SMTP服务器。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗...
  • liuchenfang06
  • liuchenfang06
  • 2016年09月23日 14:05
  • 2489

Nginx访问ftp目录时权限问题

在将nginx目录设置为ftp目录访问时会报错:403 forbidden  这是权限问题,解决方法是在配置文件中增加User vi /usr/local/nginx/conf/nginx.con...
  • sinat_32873711
  • sinat_32873711
  • 2017年03月25日 18:35
  • 825

nginx tcp http 代理配置

#user nobody; worker_processes 1;#error_log logs/error.log; #error_log logs/error.log notice; #...
  • tengdazhang770960436
  • tengdazhang770960436
  • 2016年08月03日 16:50
  • 3554

FTP+Nginx图片服务器

安装vsftpd组件 (提示nginx的安装上篇文章已经说过,这里就不讲了直接ftp安装,然后整合两个) [root@bogon ~]# yum -y install vsftpd 安装...
  • u010191034
  • u010191034
  • 2016年11月16日 17:07
  • 1403

VSFTP服务搭建及FTP并发的核心理解

踩了挺多的坑,然后才知道ftp实现并发靠的就是开多少个端口。2个用户连接服务器,服务器就开2个端口。10个用户连接,服务器就开10个端口。       先说最核心的内容:       PO...
  • Linux_Enjoyer
  • Linux_Enjoyer
  • 2017年12月11日 18:54
  • 149

nginx和ftp搭建图片服务器

一、需要的组件 图片服务器两个服务: Nginx(图片访问): 1、http服务:可以使用nginx做静态资源服务器。也可以使用apache。推荐使用nginx,效率更高。 2、反向代理 实现 负载...
  • u012401711
  • u012401711
  • 2016年12月08日 23:02
  • 9485

FTP 代理过程分析 - 使用 ftp.proxy

与 HTTP 代理相比,FTP 代理要特殊很多,因为 FTP 要使用随机端口来传输数据,端口号在运行时确定并通过控制链路(控制链路传输 FTP 命令和响应,数据链路传输文件内容)传输,因此代理服务器必...
  • FrancisHe
  • FrancisHe
  • 2017年06月06日 16:10
  • 1481
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Nginx 配置 多个VSFTP的loadbalance
举报原因:
原因补充:

(最多只允许输入30个字)