ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

nginx四层负载

2022-06-18 19:03:25  阅读:125  来源: 互联网

标签:负载 stream 四层 server nginx 172.16


Nginx四层负载

什么是四层负载

OSI七层模型,四层是传输层,传输层使用端口到端口的通信方式
四层负载均衡,就是在传输层做端口转发 (端口映射)

四层负载均衡应用场景

1.四层+七层来做负载均衡,四层可以保障七层的高可用;如nginx就无法保证自己的服务高可用,需要依赖LVS或者keepalive。

2.如: tcp协议的负载均衡,有些请求是TCP协议的 (mysql、ssh),或者书这些请求只需要使用四层进行端口的转发就可以了,所以使用四层负载均衡。

nginx四层负载

# 负载均衡软件:
	nginx
		- 四层负载均衡(nginx 1.9版本以后有stream模块,才可以做四层负载均衡
				stream
		- 七层负载
				upstream
	LVS
		-四层负载
	HAproxy
		- 四层负载
		- 七层负载

四层负载均衡配置

环境准备

主机名 WanIP LanIP 角色 应用
lb01 10.0.0.5 172.16.1.5 七层负载 nginx
lb02 10.0.0.6 172.16.1.6 四层负载 nginx
web01 10.0.0.7 172.16.1.7 web网站 nginx、php
web02 10.0.0.8 172.16.1.8 web网站 nginx、php
db01 10.0.0.51 172.16.1.51 数据库 MariaDB

部署四次负载

# 1.添加nginx官方源
[root@ib02 nginx]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

# 2.安装nginx
[root@ib02 nginx]# yum -y install nginx

# 3.主配置文件添加include
include /etc/nginx/stream.d/*.conf;
http {...}

# 4.配置四层负载
[root@ib02 nginx]# vim /etc/nginx/stream.d/456.conf
stream{
        upstream backend {
                server 172.16.1.5:80;
        }
        server{
                listen 99;
                proxy_pass backend;
        }
}

使用stream做端口转发

实现22端口转发

# 在10.0.0.6机器上开456端口,映射到10.0.0.8的22端口
[root@ib02 nginx]# vim /etc/nginx/stream.d/456.conf
stream{
        upstream web02_ssh{
                server 172.16.1.8:22;
        }
        server {
                listen 456;
                proxy_pass web02_ssh;
        }
        upstream backend {
                server 172.16.1.5:80;
        }
        server{
                listen 99;
                proxy_pass backend;
        }
}

映射数据库端口

stream{
        upstream web02_ssh{
                server 172.16.1.8:22;
        }
        server {
                listen 456;
                proxy_pass web02_ssh;
        }
        upstream backend {
                server 172.16.1.5:80;
        }
        server{
                listen 99;
                proxy_pass backend;
        }
        upstream db01_mysql {
                server 172.16.1.51:3306;
        }
        server {
                listem 8848;
                proxy_pass db01_mysql;
        }       
}

标签:负载,stream,四层,server,nginx,172.16
来源: https://www.cnblogs.com/ghjhkj/p/16389008.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有