Linux——分离部署,分化压力

PQS/TPS每秒请求数/ 每秒事务数 // 流量衡量参数

可以根据预估QPS 和 服务器的支持的最高QPS 对照计算 就可以得出 需要上架的服务器的最小数量

PV 页面浏览数 UV 独立用户访问量 // 对于网站的总体访问量

response time 响应时间 // 每个请求的响应时间

lnmp 分离部署 分化压力

nginx - 一个节点 192.168.110.133

php 一个节点 192.168.110.138

db 一个节点 192.168.110.22

实验topo

实验过程

nginx节点:

复制代码
[root@nginx ~]# dnf  -y install nginx 
[root@nginx ~]# systemctl enable nginx.service 
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
[root@nginx ~]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset: enabled)
     Active: active (running) since Tue 2024-09-10 09:12:37 CST; 2h 34min ago
       Docs: man:firewalld(1)
   Main PID: 924 (firewalld)
      Tasks: 2 (limit: 24434)
     Memory: 42.1M
        CPU: 1.275s
     CGroup: /system.slice/firewalld.service
             └─924 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid

Sep 10 09:12:36 localhost systemd[1]: Starting firewalld - dynamic firewall daemon...
Sep 10 09:12:37 localhost systemd[1]: Started firewalld - dynamic firewall daemon.
[root@nginx ~]# systemctl stop firewalld.service 
[root@nginx ~]# setenforce 0
[root@nginx ~]# vim /etc/exports 
/usr/share/nginx/html *(rw)
[root@nginx ~]# cat /usr/share/nginx/html/index.php 
<?php
phpinfo();
?>
[root@nginx ~]# yum -y install nfs-utils
[root@nginx ~]# systemctl start nfs-server

php:

复制代码
php:
[root@php ~]# dnf -y install php php-fpm 
[root@php ~]# systemctl stop firewalld.service 
[root@php ~]# setenforce 0
[root@php ~]# systemctl start php-fpm 
[root@php ~]# dnf -y install nfs-utils
root@php ~]# showmount -e 192.168.110.133
Export list for 192.168.110.133:
/usr/share/nginx/html *
[root@php ~]# mkdir -p /usr/local/nginx/html
[root@php ~]# chown apache -R /usr/share/nginx
[root@php ~]# mount 192.168.110.133:/usr/share/nginx/html /usr/share/nginx/html/
[root@php ~]# vim /etc/php-fpm.d/www.conf

// 修改php-fpm 监听本地与nginx同一网段的IPv4地址和9000端口

// 如果只写9000 代表监听所有地址的9000端口

// 允许访问的地址列表中添加nginx的ip地址

root@php \~\]# systemctl start php-fpm.service ### 返回nginx节点,进行动静分离的配置: ![](https://i-blog.csdnimg.cn/direct/ddea71ddd35e44379a7233dc041f1097.png) [root@nginx ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful [root@nginx ~]# systemctl reload nginx.service 验证nginx转发php脚本给php-fpm 节点解析 [root@nginx ~]# curl -I 127.0.0.1/index.php HTTP/1.1 200 OK Server: nginx/1.20.1 Date: Tue, 10 Sep 2024 05:49:32 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive X-Powered-By: PHP/8.0.30 如果访问出现问题,结合日志进行排错。 nginx 访问日志: /var/log/nginx/access.log 错误日志:/var/log/nginx/error.log php-fpm 日志: /var/log/php-fpm/error.log ### 配置php连接数据库 [root@db-mariadb ~]# dnf -y install mariadb mariadb-server [root@db-mariadb ~]# systemctl stop firewalld.service [root@db-mariadb ~]# setenforce 0 [root@db-mariadb ~]# systemctl start mariadb.service [root@db-mariadb ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 3 Server version: 10.5.22-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> set password=password('redhat'); Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> exit Bye [root@db-mariadb ~]# ss -anput | grep mysql [root@db-mariadb ~]# ss -anput | grep mariadb tcp LISTEN 0 80 *:3306 *:* users:(("mariadbd",pid=35118,fd=19)) [root@db-mariadb ~]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 5 Server version: 10.5.22-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> select user,host from mysql.user; +-------------+-----------+ | User | Host | +-------------+-----------+ | mariadb.sys | localhost | | mysql | localhost | | root | localhost | +-------------+-----------+ 3 rows in set (0.002 sec) MariaDB [(none)]> grant all on *.* to root@192.168.110.138 identified by 'redhat'; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> select user,host from mysql.user; +-------------+-----------------+ | User | Host | +-------------+-----------------+ | root | 192.168.110.138 | | mariadb.sys | localhost | | mysql | localhost | | root | localhost | +-------------+-----------------+ 4 rows in set (0.001 sec) MariaDB [(none)]> ### 在php上安装php-mysqlnd 模块,并验证可以连接数据库 [root@php ~]# dnf -y install mariadb [root@php ~]# mysql -h 192.168.110.22 -u root -predhat Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 6 Server version: 10.5.22-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> exit Bye [root@php ~]# dnf -y install php-mysqlnd ### 切换到nginx 节点上,添加php连接数据库的脚本程序文件 [root@nginx ~]# cat /usr/share/nginx/html/db.php ### 在php节点查看文件是否同步,已经能否运行该脚本程序 [root@php ~]# ls /usr/share/nginx/html/db.php /usr/share/nginx/html/db.php [root@php ~]# php /usr/share/nginx/html/db.php 成功连接数据库 通过浏览器验证访问 ![](https://i-blog.csdnimg.cn/direct/0ab6dfb5b81c4a1490611f54340faf3e.png) [root@nginx ~]# curl 192.168.110.133/db.php 成功连接数据库 如果是lnamp 一般采用为apache 服务器前设置代理服务实现动静分离,apache 主要处理动态请求。 在对nginx 、 php 还有数据库 进行水平扩展时,应该怎么做? ![](https://i-blog.csdnimg.cn/direct/47c94efd2dec41c6950ebbc130e2efdc.png)

相关推荐
_下雨天.4 小时前
LVS负载均衡
服务器·负载均衡·lvs
小成202303202656 小时前
Linux高级02
linux·开发语言
mounter6256 小时前
【硬核前沿】CXL 深度解析:重塑数据中心架构的“高速公路”,Linux 内核如何应对挑战?-- CXL 协议详解与 LSF/MM 最新动态
linux·服务器·网络·架构·kernel
++==6 小时前
Linux 进程间通信与线程同步技术详解:IPC 机制、线程 API、同步工具与经典同步问题
linux
特长腿特长7 小时前
centos、ubantu系列机的用户和用户组的结构是什么?具体怎么配置?用户组权限怎么使用?这篇文章持续更新,帮助你复习linux的基础知识
linux·运维·centos
zzzyyy5387 小时前
Linux环境变量
linux·运维·服务器
pluvium277 小时前
记对 xonsh shell 的使用, 脚本编写, 迁移及调优
linux·python·shell·xonsh
无级程序员7 小时前
centos7 安装 llvm-toolset-7-clang出错的问题解决
linux·centos
kebeiovo7 小时前
atomic原子操作实现无锁队列
服务器·c++
赛博云推-Twitter热门霸屏工具8 小时前
Twitter运营完整流程:从0到引流获客全流程拆解(2026)
运维·安全·自动化·媒体·twitter