nginx1.9基于端口的四层负载均衡实践,基于端口的转的负载均衡

在大型项目四层负载有LVS,但在中小型项目或者内部有很多应用需要做TCP四层基于端口转,以前我们采用Socat,后面也尝试使用iptables来做四层的端口转发,同样HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,但由于其配置相对复杂,在实际生产项目中还是以Nginx为主,

Nginx1.9的推出不使用使之支持HTTP2.0,另外一上更加让人兴奋的就是默认支持TCP端口的四层负载均衡能力,话多多说直接看实例代码

server {
    listen 127.0.0.1:12345;   #监听端口
    proxy_pass 192.168.1.22:8080;      #转发到后端端口
}

看上面栗子,是不是觉得做端口转发配置特别简单

参考地址:http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html

server {
    ...
    deny  192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    deny  all;
}

在上面的栗子基础上,增加一访问限制,和HTTP的一模一样也

参考地址:http://nginx.org/en/docs/stream/ngx_stream_access_module.html

worker_processes auto;

error_log /var/log/nginx/error.log info;

events {
    worker_connections  1024;
}
stream {
    upstream backend {
        server 192.168.1.22:12345;
        server 192.168.1.23:12345;
    }
    server {
        listen 12345;
        proxy_pass backend;
    }

}

来一上完整的栗子,这是一上带伏在均衡的栗子哦,看了是不是特别激动,会Http反向代理的,看这代码毫无压力

如需要更加强大的东西可 以参考:

http://nginx.org/en/docs/stream/ngx_stream_core_module.html

server {
    listen 12345;
    proxy_connect_timeout 1s;
    proxy_timeout 1m;
    proxy_pass example.com:12345;
}

server {
    listen [::1]:12345;
    proxy_pass unix:/tmp/stream.socket;
}

如上栗子,不光支持TCP/IP V4,还支持V6哦(不过暂时也用不上),并且还可以对连接的时效做一些限制,比起以前用过的iptables和socat端口转发强大太多了,并且还很容易理解.

上参考路径:http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html

upstream backend {
    hash $remote_addr consistent;

    server backend1.example.com:12345  weight=5;
    server backend2.example.com:12345;
    server unix:/tmp/backend3;

    server backup1.example.com:12345   backup;
    server backup2.example.com:12345   backup;
}

server {
    listen 12346;
    proxy_pass backend;
}

等等,还没完,Nginx还有更加强大的就是对我产的转发源也可以进行简单明了的设置,基本沿用了Nginx http反向代理的配置方法主风格,简直太喜欢.

http://nginx.org/en/docs/stream/ngx_stream_upstream_module.html

最后用上Nginx,妈妈再也不用担心复杂架构,各种异构应用使用各种奇葩的七层协议及端口呢!

时间: 2024-10-25 21:21:35

nginx1.9基于端口的四层负载均衡实践,基于端口的转的负载均衡的相关文章

Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理

Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理 通常我们会用Nginx的upstream做基于http/https端口的7层负载均衡,由于Nginx老版本不支持tcp协议,所以基于tcp/udp端口的四层负载均衡一般用LVS或Haproxy来做.至于4层负载均衡和7层负载均衡的区别,可以参考:http://www.cnblogs.com/kevingrace/p/6137881.html.然而Nginx从1.9.0版本开始,新增加了一个stream模块,用来实现四层协

负载均衡服务TCP端口健康检查成功,为什么在后端业务日志中出现网络连接异常信息?

负载均衡服务TCP端口健康检查成功,为什么在后端业务日志中出现网络连接异常信息? 原文: https://help.aliyun.com/document_detail/127193.html?spm=a2c4g.11186623.6.606.5b7a7ee5RD6Xai 问题现象: 负载均衡后端配置TCP服务端口后,后端业务日志中频繁出现类似如下网络连接异常错误信息.经进抓包分析,发现相关请求来自负载均衡服务器,同时负载均衡主动向服务器发送了RST数据包. 问题原因: 该问题和负载均衡的健康检

负载均衡之基于L7负载

L7负载平衡 另一种较为常用的负载平衡解决方案则是L7负载平衡.顾名思义,其主要通过OSI模型中的第七层应用层中的数据决定如何分发负载. 在运行时,L7负载平衡服务器上的操作系统会将接收到的各个数据包组织成为用户请求,并根据在该请求中所包含的的数据来决定由哪个服务实例来对该请求进行处理.其运行流程图大致如下所示: 相较于L3/4负载平衡服务所使用的数据,L7负载平衡服务所使用的应用层数据更贴近服务本身,因此其具有更精确的负载平衡行为. 在前面对L3/4负载平衡的讲解中我们已经介绍过,对于某些具有

Nginx+Tomcat服务器负载均衡实践方案

1.    为何选择Nginx+Tomcat做负载均衡? 1.1. Nginx是什么? Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户

SpringCloud系列五:Ribbon 负载均衡(Ribbon 基本使用、Ribbon 负载均衡、自定义 Ribbon 配置、禁用 Eureka 实现 Ribbon 调用)

1.概念:Ribbon 负载均衡 2.具体内容 现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册的目的是希望所有的服务都统一归属到 Eureka 之中进 行处理,但是现在的问题,所有的微服务汇集到了 Eureka 之中,而客户端的调用也应该通过 Eureka 完成.而这种调用就可以利用 Ribbon 技术来实现. Ribbon 是一个服务调用的组件,并且是一个客户端实现负载均衡处理的组件.服务器端实现负载均衡可以使用 Nginx. HAProxy.LVS 等. 2

实践NGINX的反向代理与负载均衡

实践NGINX的反向代理与负载均衡 安装nginx过程 [[email protected] opt]# yum install pcre-devel openssl-devel -y [[email protected] opt]# wget -q http://nginx.org/download/nginx-1.10.2.tar.gz [[email protected] opt]# useradd nginx -s /sbin/nologin -M [[email protected]

lvs负载均衡实践之lvs-nat

lvs负载均衡实践之lvs-nat 一.前言 本次所有的实验均在虚拟机的环境中进行,实验的目的是搭建lvs-nat模式的负载均衡集群.本文不涉及lvs原理,只模拟了lvs-nat模式的负载均衡集群. 原理请参考: http://www.linuxvirtualserver.org/zh/index <LVS手册_可伸缩网络服务的设计与实现_1.0> 二.拓扑图 工具:ipvsadm 环境准备: 客户端:192.168.91.128 负载均衡服务器:VIP:192.168.91.3 DIP:10

基于 Docker 的微服务架构实践

本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 DevOps,也见证了 Docker 的技术体系的快速发展.本文主要是结合在公司搭建的微服务架构的实践过程,做一个简单的总结.希望给在创业初期探索如何布局服务架构体系的 DevOps,或者想初步了解企业级架构的同学们一些参考. Microservice 和 Docker 对于创业公司的技术布局,很多声

京东基于Spark的风控系统架构实践和技术细节

京东基于Spark的风控系统架构实践和技术细节 时间 2016-06-02 09:36:32  炼数成金 原文  http://www.dataguru.cn/article-9419-1.html 主题 Spark软件架构 1.背景 互联网的迅速发展,为电子商务兴起提供了肥沃的土壤.2014年,中国电子商务市场交易规模达到13.4万亿元,同比增长31.4%.其中,B2B电子商务市场交易额达到10万亿元,同比增长21.9%.这一连串高速增长的数字背后,不法分子对互联网资产的觊觎,针对电商行业的恶