热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

nginx的4层负载均衡

nginx可以实现4层负载均衡。软件四层负载均衡:通过报文(数据包)中的目标地址和端口,加上分发机上的调度算法,决定最终选择哪个RIP。

nginx可以实现4层负载均衡。

软件四层负载均衡:
通过报文(数据包)中的目标地址和端口,加上分发机上的调度算法,决定最终选择哪个RIP。
LVS

软件七层负载均衡:
通过看客户端请求的具体内容(文字、图片、视频;网站交互)进行最终选择。

网络中常见的 SYN Flood 攻击。DOS。DDOS

nginx的4层负载均衡有2个条件:

1、版本在1.10以上

2、配置选项要有stream

[root@nginx-4c ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.17.6
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix&#61;/usr/local/nginx --user&#61;www --group&#61;www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_sub_module --with-http_gzip_static_module --with-http_realip_module --with-stream--with-stream <--要这个选项

配置&#xff1a;

pid logs/nginx.pid;
events {worker_connections 1024;use epoll;
}
》》》》》》》》》》》》》》》》》》》》》》》》
stream {upstream p_ssh { hash $remote_addr consistent;server 172.16.12.71:22; server 172.16.12.72:22;}server {listen 24678;proxy_connect_timeout 3s; proxy_timeout 10s;proxy_pass p_ssh;}
}
》》》》》》》》》》》》》》》》》》》》》》》》

然后重启服务&#xff1a;
查端口&#xff0c;有24678那个新添加的端口

[root&#64;nginx-4c nginx]# netstat -antlup | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 882/nginx: master p
tcp 0 0 0.0.0.0:24678 0.0.0.0:* LISTEN 882/nginx: master p

访问测试&#xff1a;

[root&#64;localhost mnt]# ssh -p 24678 root&#64;172.16.12.82root&#64;172.16.12.82&#39;s password:
Last login: Sat Jan 4 00:59:11 2020 from 172.16.12.1
[root&#64;chunk1 ~]# Connection to 172.16.12.82 closed by remote host.
Connection to 172.16.12.82 closed.

能够登录转发。

mysql

172.16.12.71

装个mysql

[root&#64;chunk1 ~]# yum install mariadb-server -y [root&#64;chunk1 ~]# systemctl restart mariadb
[root&#64;chunk1 ~]# mysqlMariaDB [(none)]> grant select on *.* to &#39;read&#39;&#64;&#39;172.16.%&#39; identified by &#39;12345&#39;;
MariaDB [(none)]> flush privileges;

172.16.12.72

MariaDB [(none)]> grant all on *.* to &#39;write&#39;&#64;&#39;172.16.%&#39; identified by &#39;12345&#39;;
MariaDB [(none)]> flush privileges;

stream {upstream mysql_read {hash $remote_addr consistent;server 172.16.12.71:3306 weight&#61;10 max_fails&#61;3 fail_timeout&#61;2s;} upstream mysql_write {hash $remote_addr consistent;server 172.16.12.72:3306 weight&#61;10 max_fails&#61;3 fail_timeout&#61;2s;} server {listen 3306;proxy_connect_timeout 3s;proxy_timeout 10s;proxy_pass mysql_read;}server {listen 3307;proxy_connect_timeout 3s;proxy_timeout 10s;proxy_pass mysql_write;}
}

重启查端口&#xff1a;
看到3306、3307&#xff0c;这两个是nginx启动的端口。

[root&#64;nginx-4c nginx]# netstat -antlup | grep nginx
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 882/nginx: master p
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 882/nginx: master p
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 882/nginx: master p

访问测试&#xff1a;

[root&#64;client ~]# yum install -y mariadb

[root&#64;client ~]# mysql -h 172.16.12.82 -P 3306 -u read -p12345
Welcome to the MariaDB monitor. Commands end with ; or \g.

[root&#64;client ~]# mysql -h 172.16.12.82 -P 3307 -u write -p12345
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3

都能访问转发。ok了。


推荐阅读
  • 在腾讯云服务器上部署Nginx的详细指南中,首先需要确保安装必要的依赖包。如果这些依赖包已安装,可直接跳过此步骤。具体命令包括 `yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel`。接下来,本文将详细介绍如何下载、编译和配置Nginx,以确保其在腾讯云服务器上顺利运行。此外,还将提供一些优化建议,帮助用户提升Nginx的性能和安全性。 ... [详细]
  • 在无网络环境下于CentOS 7系统中离线部署Nginx服务器
    nginx背景俄罗斯程序员IgorSysoev创建,于2004年NGINX首次发布,来解决C10K问题(10000并发客户端连接到单个服务器,导致服务器连接数过多崩溃的问题),是一 ... [详细]
  • 类加载机制是Java虚拟机运行时的重要组成部分。本文深入解析了类加载过程的第二阶段,详细阐述了从类被加载到虚拟机内存开始,直至其从内存中卸载的整个生命周期。这一过程中,类经历了加载(Loading)、验证(Verification)等多个关键步骤。通过具体的实例和代码示例,本文探讨了每个阶段的具体操作和潜在问题,帮助读者全面理解类加载机制的内部运作。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • ESP32 IRAM 内存优化策略与实践总结
    本文总结了针对ESP32 IRAM内存溢出问题的优化策略与实践经验。通过详细分析ESP32的内存结构和IRAM分配机制,提出了一系列有效的解决方案,包括代码优化、内存管理技巧和编译器配置调整,旨在帮助开发者有效解决`.espressif/tools/xtensa-esp32-elf/esp-2`等类似错误,提升系统性能和稳定性。 ... [详细]
  • 本文探讨了将PEBuilder转换为DIBooter.sh的方法,重点介绍了如何将DI工具集成到启动层,实现离线镜像引导安装。通过使用DD命令替代传统的grub-install工具,实现了GRUB的离线安装。此外,还详细解析了bootice工具的工作原理及其在该过程中的应用,确保系统在无网络环境下也能顺利引导和安装。 ... [详细]
  • 深入浅出解析HTTP协议的核心功能与应用
    前言——协议是指预先设定的通信规则,确保双方能够按照既定标准进行有效沟通,从而实现准确的信息交换。例如,驯兽师通过拍手使动物坐下,这实际上是一种预设的协议。本文将详细探讨HTTP协议的核心功能及其广泛应用,解析其在现代网络通信中的重要作用。 ... [详细]
  • Nginx入门指南:从零开始掌握基础配置与优化技巧
    Nginx入门指南:从零开始掌握基础配置与优化技巧 ... [详细]
  • 在使用 PHP 通过 SSL 安全连接到 MySQLi 数据库服务器时,遇到了一些技术难题。我的环境包括一个 Web 服务器和一个数据库服务器,两者均使用 OpenSSL 生成了证书。尽管证书内容一致,但在尝试从 Web 服务器使用 `mysql` 命令进行连接时,仍然遇到了问题。为了确保连接的安全性和稳定性,需要进一步检查证书配置和 PHP 的 SSL 设置,以排除潜在的配置错误或兼容性问题。 ... [详细]
  • 在Linux系统中将Python更新至3.7版本的方法如下:首先,从Python官方网站下载Python 3.7的安装包,例如使用 `wget` 命令下载 `Python-3.7.3.tgz`。其他版本的下载链接也可从Python官网获取。接下来,解压下载的文件并进入解压后的目录,运行配置脚本和编译命令以完成安装。确保在安装过程中添加Python 3.7到系统的环境变量中,以便全局使用。此外,建议检查当前系统的Python版本,以避免冲突。 ... [详细]
  • openssh其他版本有漏洞,需要升级,本文以我升级的机器centos6为例一、准备工作1.1检查openssh版本查看系统版本catetcre ... [详细]
author-avatar
高玉成
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有