Nginx 配置 多个VSFTP的loadbalance
来源:互联网 发布:风中的承诺伴奏网络 编辑:程序博客网 时间:2024/06/07 05:23
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=YESpasv_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 配置 多个VSFTP的loadbalance
- nginx.conf的配置多个目录
- openSUSE vsftp的配置
- vsftp的配置
- vsftp的配置
- vsftp的配置1
- 简单的vsftp配置
- Vsftp的配置方法
- vsftp的配置条目
- vsftp的配置安装
- vsftp的conf配置
- Nginx配置多个证书
- nginx 配置多个目录
- nginx 多个站点配置
- nginx 配置多个主机
- nginx配置多个tomcat
- nginx配置多个站点
- vsftp的高级配置[转]
- 提高zxing生成二维码的容错率及zxing生成二维码的边框设置
- 优先队列详解
- Java学习之自定义异常和抛出异常
- Windows 7 频繁提示:计算机的内存不足
- 精通Objective-C 第一章~第三章读书笔记
- Nginx 配置 多个VSFTP的loadbalance
- Android 6.0 的getColor()方法过时
- 读《编写可维护的JavaScript》的收获
- npapi文档
- 模式识别(Pattern Recognition)学习笔记(十七)--二次判别函数
- c++ 中对vector的使用方法
- 安卓自定义控件
- C++中的const用法
- binary search tree