Nginx四层负载均衡1
1、Nginx负载均衡Redis

| 服务器 | IP地址 | 作用 | 系统版本 | 
|---|---|---|---|
| Nginx代理服务器 | 10.0.0.38 | 负载均衡服务器 | Rocky8.6 | 
| Redis服务器1 | 10.0.0.18 | Redis服务器1 | Rocky8.6 | 
| Redis服务器2 | 10.0.0.28 | Redis服务器2 | Rocky8.6 | 
| client | 10.0.0.101 | 测试访问网站 | Ubuntu2004 | 
# 安装redis服务器
# Rides1(10.0.0.18):
[root@redis1 ~]# yum install -y redis
[root@redis1 ~]# vim /etc/redis.conf        #修改监听端口
bind 0.0.0.0
[root@redis1 ~]# systemctl restart redis
[root@redis1 ~]# ss -ntl                    # 查看6379端口是否开启
State     Recv-Q    Send-Q         Local Address:Port         Peer Address:Port    Process
LISTEN    0         128                  0.0.0.0:6379              0.0.0.0:*
==========================================
# Rides2(10.0.0.28):
[root@redis2 ~]# yum -y install redis
[root@redis2 ~]# vim /etc/redis.conf
bind 0.0.0.0
[root@redis2 ~]# systemctl restart redis
# Nginx服务器(10.0.0.38):
# 提前安装好Nginx,这里是编译安装到/apps/nginx里
[root@Nginx nginx]# vim /apps/nginx/conf/nginx.conf
include  /apps/nginx/conf/tcp/*.conf;     #不建议直接更改主配置,所以增加一个包含目录(注意:此处和http是并列级别)
[root@Nginx nginx]# vim /apps/nginx/conf/tcp/redis.conf
stream  {
	upstream redis_server{
    server 10.0.0.18:6379 max_fails=3 fail_timeout=30s;
    server 10.0.0.28:6379 max_fails=3 fail_timeout=30;
   }
server {
    listen 80;
    proxy_pass redis_server;
    proxy_connect_timeout 3s;
    proxy_timeout 3s;
   }
}
#客户端安装redis测试:
[root@ubuntu2004 ~]#redis-cli -h 10.0.0.38 set name b   #增加一个name的变量,值是b
OK
[root@ubuntu2004 ~]#redis-cli -h 10.0.0.38 get name     #查询name变量
"b"
[root@ubuntu2004 ~]#redis-cli -h 10.0.0.38 get name
(nil)
[root@ubuntu2004 ~]#redis-cli -h 10.0.0.38 get name
"b"
[root@ubuntu2004 ~]#redis-cli -h 10.0.0.38 get name
(nil)
## 可以看到负载到两台rides上了。
2、Nginx负载均衡MySQL

| 服务器 | IP地址 | 作用 | 系统版本 | 
|---|---|---|---|
| Nginx代理服务器 | 10.0.0.38 | 负载均衡服务器 | Rocky8.6 | 
| Mysql服务器1 | 10.0.0.18 | Mysql服务器1 | Rocky8.6 | 
| Mysql服务器2 | 10.0.0.28 | Mysql服务器2 | Rocky8.6 | 
| client | 10.0.0.101 | 测试访问网站 | Ubuntu2004 | 
#mysql两台服务器做主主复制:(参见本人博客“Rocky之Mysql主从复制”第6节)
mysql> create user wang@'10.0.0.%' identified by '123456';    #增加一个测试用户
mysql> flush privileges;
========================================================
# Nginx(10.0.0.38):
[root@rocky8 nginx-1.22.0]#vim /apps/nginx/conf/tcp/redis.conf
stream  {
    upstream redis_server{
    server 10.0.0.18:6379 max_fails=3 fail_timeout=30s;
    server 10.0.0.28:6379 max_fails=3 fail_timeout=30;
   }
    upstream mysql_server {
    server 10.0.0.18:3306 max_fails=3 fail_timeout=30s;
    server 10.0.0.28:3306 max_fails=3 fail_timeout=30;
    }
server {
    listen 6379;
    proxy_pass redis_server;
    proxy_connect_timeout 3s;
    proxy_timeout 3s;
   }
server {
    listen 3306;
    proxy_pass mysql_server;
   }
}
[root@rocky8 nginx-1.22.0]#nginx -s reload
====================================================
#客户端测试:
[root@rocky8 ~]# mysql -uwang -p123456 -h10.0.0.38 -e 'select @@server_id;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------------+
| @@server_id |
+-------------+
|          28 |
+-------------+
[root@rocky8 ~]# mysql -uwang -p123456 -h10.0.0.38 -e 'select @@server_id;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------------+
| @@server_id |
+-------------+
|          18 |
+-------------+
[root@rocky8 ~]# mysql -uwang -p123456 -h10.0.0.38 -e 'select @@server_id;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------------+
| @@server_id |
+-------------+
|          28 |
+-------------+
[root@rocky8 ~]# mysql -uwang -p123456 -h10.0.0.38 -e 'select @@server_id;'
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------------+
| @@server_id |
+-------------+
|          18 |
+-------------+
3、Rockey搭建LNMP(Nginx与php-fpm在同一服务器 )

| 服务器 | IP地址 | 作用 | 系统版本 | 
|---|---|---|---|
| Nginx和PHP服务器 | 10.0.0.38 | Nginx+php-fpm服务器 | Rocky8.6 | 
| Mysql服务器 | 10.0.0.18 | Mysql服务器 | Rocky8.6 | 
| client | 10.0.0.101 | 测试访问网站 | Ubuntu2004 | 
# nginx服务器(10.0.0.38):
[root@nginx ~]#yum install php-fpm php-mysqlnd php-json   #安装php相关包已经依赖
[root@nginx ~]#vim /etc/php-fpm.d/www.conf   #修改配置文件,最后结果如下:
[root@nginx ~]#egrep -v "^;|^$" /etc/php-fpm.d/www.conf
[www]
user = nginx       # 最好改为nginx运行的用户
group = nginx      # 最好改为nginx运行的组
listen = 127.0.0.1:9000          #监听地址及IP  (跨网络需要写网卡的IP)
pm.status_path = /pm_status      #取消注释
ping.path = /ping                #取消注释
ping.response = pong             #取消注释
slowlog = /var/log/php-fpm/www-slow.log    #慢日志路径,不用修改
php_admin_value[error_log] = /var/log/php-fpm/www-error.log    #错误日志路径,不用修改
php_value[session.save_handler] = redis     #修改此行
php_value[session.save_path]    = "tcp://redis-server:6379"   #修改此行
[root@nginx ~]#systemctl restart php-fpm.service
[root@nginx ~]#ss -ntl      #查看端口是否开启
LISTEN    0         128                127.0.0.1:9000              0.0.0.0:*  
[root@nginx ~]#vim /apps/nginx/conf/nginx.conf
 include /apps/nginx/conf/conf.d/*.conf;            #在http内增加
[root@nginx ~]#mkdir /apps/nginx/conf/conf.d
[root@nginx ~]#vim /apps/nginx/conf/conf.d/php.conf
server {
    listen 80;
    server_name www.wang.org;
    root /data/html;                 #静态页面访问/data/html
    location ~ \.php$ {
            root           /data/php;        #以php结尾的文件访问此目录
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;   #$document_root也可以写成上边root的目录:/data/php
            include        fastcgi_params;
    }
}
[root@nginx ~]#mkdir -p /data/php
[root@nginx ~]#mkdir /data/html
[root@nginx ~]#vim /data/php/index.php
<?php
phpinfo();
?>
[root@nginx ~]#vim /data/html/index.html
www.wang.org
[root@nginx ~]#nginx -s reload
=========================================
# 客户端测试连接:


# Mysql(10.0.0.18):安装mysql并创建用户
mysql> create user wang@'10.0.0.%' identified by '123456';
mysql> grant replication slave on *.* to repluser@'10.0.0.%';
mysql> flush privileges;
===================================================
# nginx服务器(10.0.0.38):
[root@nginx ~]#vim /data/php/mysql.php      #测试连接数据库文件
<?php
    $servername = "10.0.0.18";
    $username = "wang";
    $password = "123456";
    // 创建连接
    $conn = mysqli_connect($servername,$username, $password);
    // 检测连接
    if (!$conn) {
        die("php连接MySQL数据库失败: " . mysqli_connect_error());
    }
    echo "php连接MySQL数据库成功!";
?>

# 修改配置页面测试ping和pm_status页面:(10.0.0.38):
[root@nginx ~]#vim /apps/nginx/conf/conf.d/php.conf
server {
    listen 80;
    server_name www.wang.org;
    root /data/html;
    location ~ \.php$|ping|pm_status {         #增加ping和pm_status
            root           /data/php;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
    }
}
[root@nginx ~]#nginx -s reload




Nginx四层负载均衡1的更多相关文章
- nginx四层负载均衡配置
		nginx四层负载均衡配置代理Mysql集群 环境如下: ip 192.168.6.203 Nginx ip 192.168.6.*(多台) Mysql 步骤一 查看Nginx是否安装stream模块 ... 
- Nginx四层负载均衡概述
		目录 Nginx四层负载均衡概述 什么是负载均衡 负载均衡应用场景 四层,七层集群架构 四层负载均衡总结 Nginx如何配置四层负载均衡 nginx四层负载均衡端口转发 Nginx四层负载均衡概述 什 ... 
- 14、Nginx四层负载均衡
		1.Nginx四层负载均衡基本概述 1.1.什么是四层负载均衡 四层负载均衡基于传输层协议包来封装的(如:TCP/IP),那我们前面使用到的七层是指的应用层,它的组装在四层基础之上,无论四层还是七层都 ... 
- Nginx四层负载均衡
		目录 Nginx四层负载均衡概述 Nginx如何配置四层负载均衡 使用nginx四层负载均衡实现tcp的转发 Nginx四层负载均衡概述 什么是四层负载均衡 四层负载均衡是基于传输层协议包来封装的(如 ... 
- 安装Nginx四层负载均衡
		Nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信. stream模块默认不安装的,需要手动添加参数:–with-stream,官方下载地址:downlo ... 
- 14.Nginx四层负载均衡
		1.七层负载均衡: 根据url 调度不同的集群 url.cheng.com 10.0.0.5 10.0.0.7 /pass 10.0.0.8 /user 1.web01和web02配置 (只不过代码不 ... 
- Nginx 四层负载均衡
		目录 四层负载均衡概述 配置七层负载均衡 配置四层负载均衡 四层负载均衡概述 四层负载均衡是基于IP+端口的负载均衡,七层负载均衡是基于URL或主机名等应用层信息的负载均衡. 其他层负载均衡(转载): ... 
- linux+asp.net core+nginx四层负载均衡
		Linux Disibutaion:Ubuntu 16.04.1 LTS Web Server:Nginx.Kestrel 关于如何在linux中部署asp.net core我这里不再详细介绍,可以参 ... 
- 配置Nginx四层负载均衡
		nginx 支持TCP转发和负载均衡的支持 实现下面的架构: 看配置: #user nobody; worker_processes 1; #error_log logs/error.log; #er ... 
随机推荐
- 汇编/C/C++/MFC/JAVA/C# 进阶群103197177
			欢迎广大喜欢编程朋友加入进来.如果是大神请分享你的经验,带领广大小伙伴一起打怪升级得经验:如果是编程新人,那么这里是你不二的选择,分享,奉献是我们追求的目标:我们之中大部分是有一年多工作经验的热血编程 ... 
- Java核心知识体系4:AOP原理和切面应用
			1 概述 我们所说的Aop(即面向切面编程),即面向接口,也面向方法,在基于IOC的基础上实现. Aop最大的特点是对指定的方法进行拦截并增强,这种增强的方式不需要业务代码进行调整,无需侵入到业务代码 ... 
- QQ高级功能
			本篇文章为微信公众号:酿俗 教学内容请跟着小编一起探索吧! 第一步解锁微信豆影藏内容 随后下载需要的材料,注意!手机可能会提示有病毒!这里使用这些功能报病毒很正常 其实并没有病毒只是手机厂商的安全系统 ... 
- 持久化-Word库加载项劫持
			持久化-Word库加载项劫持 利用wll.xll和dll的特性来利用的 重点利用office word的信任文件来进行加载恶意代码 
- 存储更弹性,详解 Fluid “ECI 环境数据访问” 新功能
			近期,Fluid 支持了阿里云 ECI 应用,并将 JuiceFS Runtime Controller 设置为默认安装:JuiceFS 也就此功能与 Fluid 完成了集成和测试工作. 用户可以在 ... 
- 【读书笔记】C#高级编程 第十章 集合
			(一)概述 数组的大小是固定的.如果元素个数是动态的,就应使用集合类. List<T>是与数组相当的集合类.还有其它类型的集合:队列.栈.链表.字典和集. (二)列表 1.创建列表 调用默 ... 
- PLSQL Developer安装详细步骤,小白,转发
			下载软件可以直接在百度网盘里面下载 链接:https://pan.baidu.com/s/1bZNJ71d2-hvkM6PTbdpgAA 提取码:t9sh 然后直接参考这个链接进行安装https:// ... 
- 2021年3月-第02阶段-前端基础-Flex 伸缩布局-移动WEB开发_流式布局
			移动web开发流式布局 1.0 移动端基础 1.1 浏览器现状 PC端常见浏览器:360浏览器.谷歌浏览器.火狐浏览器.QQ浏览器.百度浏览器.搜狗浏览器.IE浏览器. 移动端常见浏览器:UC浏览器, ... 
- 2021年3月-第01阶段-Linux基础-Linux系统概念-Linux命令
			Linux系统基本概念 图形界面: Ctrl+Shift +号 //调整命令终端变大 Ctrl - 号 //调整命令终端变小 命令终端: ~ 家目录:用户的私有场所,其他用户不能随便访问 root超级 ... 
- PHP之旅---出发(php+apache+MySQL)
			@ 目录 前言 准备 php安装 Apache安装 MySQL安装 Navicat安装(附) Apache+php整合 验证Apache+php 前言 本文详细介绍php+apache+MySQL在w ... 
