精华内容
下载资源
问答
  • 实现Nginx tcp负载均衡

    2020-01-11 18:51:18
    文章目录实现Nginx tcp负载均衡1. 模块ngx_stream_core_module1.1 Directives (指令)1.1.1 listen1.1.2tcp负载均衡配置参数2. 负载均衡实例:MySQL 实现Nginx tcp负载均衡 1. 模块ngx_stream_core_module Nginx在...

    实现Nginx tcp负载均衡

    1. 模块ngx_stream_core_module

    Nginx在1.9.0版本开始支持tcp模式的负载均衡,在1.9.13版本开始支持udp协议的负载,udp主要用于DNS的域名解析,其配置方式和指令和http 代理类似,其基于ngx_stream_proxy_module模块实现tcp负载,另外基于模块ngx_stream_upstream_module实现后端服务器分组转发、权重分配、状态监测、调度算法等高级功能。

    官方文档:https://nginx.org/en/docs/stream/ngx_stream_core_module.html
    默认情况下未构建此模块,应使用--with-stream 配置参数启用它

    1.1 Directives (指令)

    1.1.1 listen
    Syntax:	listen address:port [ssl] [udp] [proxy_protocol] [backlog=number] [rcvbuf=size] [sndbuf=size] [bind] [ipv6only=on|off] [reuseport] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];
    Default:	—
    Context:	server
    

    为服务器将接受连接的套接字 设置address和port。可以仅指定端口。该地址也可以是主机名,例如:

    listen 127.0.0.1:12345;
    listen *:12345;
    listen 12345;     # same as *:12345
    listen localhost:12345;
    

    UNIX域套接字使用“ unix:”前缀指定:

    listen unix:/var/run/nginx.sock;
    

    指定端口范围(1.15.10),第一个和最后一个端口用连字符分隔:

    listen 127.0.0.1:12345-12399;
    listen 12345-12399;
    
    1.1.2tcp负载均衡配置参数
    stream { #定义stream
     upstream backend { #定义后端服务器
       hash $remote_addr consistent; #定义调度算法
       server backend1.example.com:12345 weight=5; #定义具体server
       server 127.0.0.1:12345    max_fails=3 fail_timeout=30s;
       server unix:/tmp/backend3;
     }
     upstream dns {  #定义后端服务器
       server 192.168.0.1:53535;  #定义具体server
       server dns.example.com:53;
     }
     server { #定义server
       listen 12345; #监听IP:PORT
       proxy_connect_timeout 1s; #连接超时时间
       proxy_timeout 3s; #转发超时时间
       proxy_pass backend; #转发到具体服务器组
     }
     server {
       listen 127.0.0.1:53 udp reuseport;
       proxy_timeout 20s;
       proxy_pass dns;
     }
     server {
       listen [::1]:12345;
       proxy_pass unix:/tmp/stream.socket;
     }
    }
    

    2. 负载均衡实例:MySQL

    1. 服务器安装MySQL
    # 为了方便快捷 故yum安装
    [root@s4 ~]# yum install mariadb mariadb-server -y
    [root@s4 ~]# systemctl start mariadb
    [root@s4 ~]# mysql_secure_installation #安全初始化
    [root@s4 ~]# systemctl enable mariadb
    [root@s4 ~]# mysql -uroot -p123456
    MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH
    GRANT OPTION;
    MariaDB [(none)]> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    MariaDB [(none)]> exit
    
    1. nginx配置
    [root@s2 ~]# cat /apps/nginx/conf/tcp/tcp.conf
    stream {
    	upstream mysql_server {
     	  least_conn;
     	  server 192.168.7.104:3306 max_fails=3 fail_timeout=30s;
    	}
    	server {
    	 listen 192.168.7.102:3306;
    	 proxy_connect_timeout 6s;
    	 proxy_timeout 15s;
    	 proxy_pass mysql_server;
     	}
    }	
    #重启nginx并访问测试:
    [root@s2 ~]# systemctl restart nginx	
    #测试通过nginx负载连接MySQL:
    [root@s4 ~]# mysql -uroot -p123456 -h 192.168.7.102
    
    展开全文
  • Ubuntu 上 Nginx Tcp 负载均衡 原文地址 https://www.zhblog.net/go/os/linux/ubuntu-nginx-tcp-proxy?t=566
    展开全文
  • Nginx TCP负载配置模板

    2017-02-09 09:27:32
    Nginx TCP负载配置模板nginx.conf内容:user nginx; worker_processes 1;error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /

    Nginx TCP负载配置模板

    nginx.conf内容:

    user  nginx;
    worker_processes  1;
    
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        keepalive_timeout  65;
    
        #gzip  on;
    
        include /etc/nginx/http.conf.d/*.conf;
    }
    
    stream {
        include /etc/nginx/stream.conf.d/*.conf;
    }

    /etc/nginx/http.conf.d/下default.conf样例

    server {
        listen       80;
        server_name  localhost;
    
        #charset koi8-r;
        #access_log  /var/log/nginx/log/host.access.log  main;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }

    /etc/nginx/stream.conf.d/下example.conf样例

    upstream backend {
        server 172.19.10.101:6443;
        server 172.19.10.101:6443;
    }
    
    server {
        listen 8443;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass backend;
    }
    展开全文
  • 07.Nginx TCP负载均衡 07.Nginx TCP负载均衡 1.四层负载均衡基本概述 1.1 什么是四层负载均衡 1.2 四层负载均衡应用场景 1.3 四层负载均衡优缺点 2.四层负载均衡场景实践 2.1 配置语法示例 2.2 实现HTTP协议负载均衡...

    07.Nginx TCP负载均衡

    07.Nginx TCP负载均衡

    1.四层负载均衡基本概述

    1.1 什么是四层负载均衡

    1.2 四层负载均衡应用场景

    1.3 四层负载均衡优缺点

    2.四层负载均衡场景实践

    2.1 配置语法示例

    2.2 实现HTTP协议负载均衡

    2.3 实现MySQL负载均衡

    2.4 实现非HTTP协议负载均衡

    1.四层负载均衡基本概述

    1.1 什么是四层负载均衡

    IP+
    所谓四层就是基于 端口的负载均衡,它通过用户请求

    的端口来决定将请求转发至哪台后端服务器。
    IP
    就是通过三层的 地址并加上四层的端口号,来决定哪

    些流量需要做负载均衡。对需要负载均衡的流量进行

    NAT TCP

    转换,然后转发至后端服务器节点,并记录这个
    UDP
    或者 的流量是由哪台后端服务器处理的,后续这个

    连接的所有流量都同样转发到同一台服务器处理。

    1.2 四层负载均衡应用场景

    场景一、端口代理

    首先

    http

    当然是最常用的一种协议,但是还是有很多非

    http

    的应用(

    mysql

    redis
    、 、

    ssh
    ),只能用四层代理

    场景二、四层负载均衡 七层负载均衡,实现大规模集

    群架构。
    CPU

    其次七层代理需要 运算,所以单台机器很难做到很高的处理能力,因此需要在七层负载均衡前面再加四层负载均衡。(提高网站的访问效率,并保证了七层负载均衡的高可用性。)

    1.3 四层负载均衡优缺点

    1.四层负载均衡通常用来转发非http应用:如 tcp/80

    tcp/443 tcp/3306 tcp/22 udp/53

    2.四层负载均衡可以解决七层负载均衡高可用性的问题。( 多个七层负载均衡同时提供服务 )

    3.四层负载均衡可以解决七层负载均衡端口数限制问题。(七层负载均衡最多能使用的端口是5w)

    4.四层转发效率远比七层代理的效率高的多,但是他只

    能支持tcp/ip协议,所以他的功能较弱,虽然七层效率不高,但他支持http/https这样的应用层协议。

    2.四层负载均衡场景实践

    2.1 配置语法示例

    stream {

    upstream backend {

    hash $remote_addr consistent; server backend1.example.com:12345

    weight=5;

    server 127.0.0.1:12345 max_fails=3 fail_timeout=30s;

    server unix:/tmp/backend3;

    }

    server {

    listen 12345;

    proxy_connect_timeout 1s; proxy_timeout 3s; proxy_pass backend;

    }

    }

    2.2 实现HTTP协议负载均衡

    前端四层负载均衡+后端七层负载均衡+应用节点1.配置nginx四层负载均衡

    [root@lb02 ~]# vim /etc/nginx/nginx.conf events {

    }

    include /etc/nginx/conf.c/*.conf;

    http {

    }

    #创建存放四层负载均衡配置的目录

    [root@lb4-01 conf.c]# rm -f /etc/nginx/conf.d/default.conf #删除http的80端口

    [root@lb4-01 ~]# mkdir /etc/nginx/conf.c [root@lb4-01 ~]# cd /etc/nginx/conf.c [root@lb4-01 conf.c]# cat lb_domain.conf stream {

    upstream lb {

    server 172.16.1.5:80 weight=5 max_fails=3 fail_timeout=30s;

    server 172.16.1.6:80 weight=5 max_fails=3 fail_timeout=30s;

    }

    server {

    listen 80;

    proxy_connect_timeout 3s; proxy_timeout 3s;

    proxy_pass lb;

    }

    }

    2.Nginx
    重启

    [root@lb4-01 conf.c]# systemctl restart nginx

    [root@lb4-01 conf.c]# systemctl enable nginx

    2.3 实现MySQL负载均衡

    请求负载均衡 5555 —> 172.16.1.7:22
    请求负载均衡 6666 —> 172.16.1.51:3306

    1. Nginx
      四层负载均衡配置如下

    [root@lb01 ~]# mkdir -p /etc/nginx/conf.c [root@lb01 ~]# vim /etc/nginx/nginx.conf
    #在events层下面,http层上面配置include include /etc/nginx/conf.c/*.conf;

    #配置Nginx四层转发

    [root@lb01 ~]# cd /etc/nginx/conf.c/ [root@lb01 conf.c]# cat stream.conf stream {
    #1.定义转发tcp/22端口的虚拟资源池

    upstream ssh {

    server 172.16.1.7:22;

    }

    #2.定义转发tcp/3306端口的虚拟资源池 upstream mysql {

    server 172.16.1.51:3306;

    }

    #调用虚拟资源池

    server {

    listen 5555;

    proxy_connect_timeout 1s; proxy_timeout 300s; proxy_pass ssh;

    }

    server {

    listen 6666;

    proxy_connect_timeout 1s; proxy_timeout 300s; proxy_pass mysql;

    }

    }

    [root@lb01 conf.c]# systemctl restart nginx

    2.4 实现非HTTP协议负载均衡

    展开全文
  • nginx tcp负载均衡

    2020-12-22 16:28:39
    Nginx使用了一个新的stream模块来实现TCP负载均衡,这个模块,类似于http和mail模块,允许我们配置一组监听TCP连接的服务。允许你配置多个服务的TCP连接,通过在upstream的server组中配置proxy_pass指令。 修改...
  • 聊天服务器 可在Nginx tcp负载均衡环境中的合并聊天服务器和客户端源码,基于muduo 编译方式cd build rm -rf * cmake .. make
  • 聊天服务器 可以工作在nginx tcp负载均衡环境中的合并聊天服务器和客户端源码基于muduo实现
  • Nginx在1.9.0版本开始支持tcp模式的负载均衡,在1.9.13版本开始支持udp协议的负载,udp主要用于DNS的域名解析,其配置方式和指令和http 代理类似,其基于ngx_stream_proxy_module模块实现tcp负载,另外基于模块ngx_...
  • 可以工作在nginx tcp负载均衡环境中的整合聊天服务器和客户端源码... 项目需求 客户端新用户注册 客户端用户登陆 添加好友和添加分组 好友聊天 群组聊天 离线消息 tcp负载均衡 增强聊天系统支持客户端跨服务器通信 ...
  • ubuntu 安装nginx tcp负载

    2019-07-12 09:41:44
    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-stream make make ...
  • 基于redis,muduo网络库,MySQL服务,在nginx tcp负载均衡环境中运行的聊天服务器和客户端代码源码 1.编译方式(1)cd编译(2)sudo rm -rf *(3)cmake ..(4)make 2.使用nginx负载均衡时要先启动nginx服务(1)...
  • nginx tcp负载均衡配置

    2018-08-05 16:38:00
    1. nginx从1.9.0后引入模块ngx_stream_core_module,模块是没有编译的,需要用到编译需添加--with-stream配置参数 2. 在 nginx.conf 文件中...stream { upstream sockettcp{ #hash $remote_addr consistent; #serv...
  • nginx-1.9.0 已发布,该版本增加了stream 模块用于一般的TCP 代理和负载均衡,ngx_stream_core_module 这个模块在1.90版本后将被启用。但是并不会默认安装, 需要在编译时通过指定 --with-stream 参数来激活这个...
  • 前几日再网上看到一篇文章《复工后一次百万长连接压测Nginx与OOM的问题排查分析,我裂开了!》。标题很具有吸引力,内容也很有吸引力,链接我就不放了,有兴趣的朋友可以搜一下看看。 文章中描述使用了上百台Jmeter...
  • 而,nginx0.9版本之后支持了TCP\UDP三层的负载均衡功能,之前只是在http、mail上做的七层负载,尝试了下,结果令人满意。 1.软件安装 ./configure --prefix=/usr/local/nginx --with-stream --without-...
  • A使用nginx来接收程序的推流来进行负载均衡 B使用nginx负载均衡用户播放视频的请求 操作步骤 --with-stream就是开启网络层的接收转发.如需探讨请联系cuiyaonan2000@163.com [root@localhost cuiyaonan]# ...
  • nginx 实现tcp负载均衡.pdf
  • Nginx 配置TCP负载均衡

    2020-12-02 11:46:14
    Nginx从1.9.0版本开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等鉴于Nginx负载均衡和web service上的成功,和Nginx良好的框架,stream模块前景一片光明。 Nginx的stream模块默认不会...
  • Linux(CentOS8) Nginx配置TCP负载均衡
  • Nginx Plus的商业授权版开始具有TCP负载均衡的功能。从Nginx 1.7.7版本开始加入的,现在变成了一个商业收费版本,想要试用,需要在官网申请。也就是说,Nginx除了以前常用的HTTP负载均衡外,Nginx增加基于TCP协议...
  • windows nginx TCP代理 负载均衡

    千次阅读 2019-03-19 15:53:49
    必须是 nginx-1.9.0 以上版本(包括1.9.0)。该版本之后,增加了 stream module,可以实现该功能。 下载地址:http://nginx.org/download/nginx-1.9.9.zip http://nginx.org/download/ 安装目录: 修改nginx-...
  • Nginx之——Nginx作为TCP负载均衡

    千次阅读 2017-10-18 19:32:25
    这两天考虑mysql的集群,考虑负载均衡,了解nginx在版本1.9.0以后支持tcp负载均衡,具体可以参照官网关于模块ngx_stream_core_module的叙述 nginx从1.9.0后引入模块ngx_stream_core_module,模块是没有编译的,...
  • nginx tcp socket负载均衡

    2019-12-05 14:32:12
    nginx 1.9.9 安装 # centos安装nginx cd /usr/local # 下载安装包 wget http://nginx.org/download/nginx-1.9.9.tar.gz # 解压安装包 tar -zxvf nginx-1.9.9.tar.gz # 进入解压目录 cd nginx-1.9.9 # 开始安装 ....
  • TCP负载均衡,就是我们通常所说的“四层负载均衡”,工作在“网络层”和“传输层”。例如,LVS(Linux Virtual Server,Linux虚拟服务)和F5(一种硬件负载均衡设备),也是属于“四层负载均衡”。 ...
  • nginx】利用nginxtcp负载

    千次阅读 2018-04-10 09:43:26
    了解nginx在版本1.9.0以后支持tcp负载均衡,具体可以参照官网关于模块ngx_stream_core_module的叙述。 尝试用nginx来解决上述问题。 负载配置的条件 (1) nginx的版本1.9.0以上。 (2) 数据库需要主主备份...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,315
精华内容 25,726
关键字:

nginxtcp负载