ITPub博客

首页 > 数据库 > 数据库开发技术 > LNMP环境优化秘籍:负载均衡与高可用性攻略

LNMP环境优化秘籍:负载均衡与高可用性攻略

原创 数据库开发技术 作者:yj11290301 时间:2024-04-05 09:00:57 0 删除 编辑
  • 作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 

  • 公众号:网络豆云计算学堂

  •  座右铭:低头赶路,敬事如仪


在现代大规模在线服务的部署中,LNMP环境因其高效、稳定的特点被广泛采用。然而,为了进一步提升服务质量,引入负载均衡和高可用性设计是必不可少的步骤。本文将为您详细解析如何在LNMP环境下实现这两个目标。

我们来理解什么是负载均衡和高可用性。负载均衡是指通过某种技术手段,将大量并发的请求分散到多台服务器上处理,从而提高系统的吞吐量,减少单台服务器的压力。而高可用性则是保证系统能够在出现故障时仍能正常提供服务的能力。

 

编辑

lb1: 192.168.8.5

lb2: 192.168.8.6

web1:192.168.8.7

web2:192.168.8.8

php-fpm: 192.168.8.9

mysql: 192.168.8.10

nfs:192.168.8.11

更改主机名并可以解析


hostnamectl set-hostname lb1bash
echo "192.168.8.5 lb1" >> /etc/hosts
hostnamectl set-hostname lb2bash
echo "192.168.8.6 lb2" >> /etc/hosts
hostnamectl set-hostname web1bash
echo "192.168.8.7 web1" >> /etc/hosts

hostnamectl set-hostname web2bash
echo "192.168.8.8 web2 " >> /etc/hosts

hostnamectl set-hostname phpbash
echo "192.168.8.9 php " >> /etc/hosts

hostnamectl set-hostname mysqlbash
echo "192.168.8.10 mysql " >> /etc/hosts
hostnamectl set-hostname nfsbash
echo "192.168.8.11 nfs " >> /etc/hosts

编辑


编辑

编辑

编辑

编辑

编辑


分别插入镜像

编辑
8.5-8.8 分别安装nginx,并设置启动

umount /dev/cdrommount /dev/cdrom /mnt/cd /mnt/nginx-rpm/rpm -ivh * --nodeps --forcesystemctl start nginxsystemctl enable nginx

编辑

8.9安装php

umount /dev/cdrommount /dev/cdrom /mnt/cd /mnt/php-rpm/rpm -ivh * --nodeps --forcecd /mnt/nginx-rpm/rpm -ivh openssl* --nodeps --forcesystemctl start php-fpm.servicesystemctl enable php-fpm.service

编辑

8.10 安装mysql

umount /dev/cdrommount /dev/cdrom /mnt/cd /mnt/mysql5.6-rpm/rpm -ivh * --nodeps --forcesystemctl start mysqldsystemctl enable mysqld

编辑

先配置一台web服务器然后同步

设置网站根目录

cp -rp wordpress-4.9.4-zh_CN.zip /cd /unzip  wordpress-4.9.4-zh_CN.zipchmod -R 777 /wordpress

编辑

编辑


配置NGINX文件

cd /etc/nginx/conf.d/rm -rf default.conf touch demo.conf
cat >> demo.conf << EOF
server { listen 80; server_name blog.benet.com; root /wordpress; index index.php index.html;
location ~ \.php$ { root /wordpress; fastcgi_pass 192.168.8.8:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }}
EOF
nginx -tsystemctl restart nginx

编辑

编辑

编辑

修改php配置文件


vim /etc/php-fpm.d/listen = 192.168.8.8:9000listen.allowed_clients = 192.168.8.6systemctl restart php-fpm.service

编辑

编辑

编辑

编辑

拷贝网页根目录到php服务器

scp -rp /wordpress root@192.168.8.9:/

编辑

MySQL创建库表

create database blog;grant all on blog.* to blog@'%' identified by '123';

编辑

编辑

客户端访问8.8

编辑

编辑

编辑

编辑

编辑

8.11配置NFS

(1)开启一台centos7,安装nfs-utils、rpcbind:  yum -y install nfs-utils  rpcbind    nfs-utils 负责文件共享  rpcbind 负责网络通信
(2)创建挂载点 mkdir -p /nfs/blog (3)发布共享目录 vim /etc/exports 添加: /nfs/blog 192.168.8.0/24(rw,sync,no_root_squash)
保存退出 (4)重启nfs服务 systemctl restart rpcbind systemctl restart nfs (5)在nginx服务器上查看nfs共享目录 showmount -e 192.168.8.132 (6)把wordpress的内容目录挂载到nfs cd /wordpress cp -rp wp-content/ wp-contentbak mount -t nfs 192.168.8.11:/nfs/blog wp-content cp -rp wp-contentbak/* wp-content/ (7)设置永久挂载 vim /etc/fstab 添加: 192.168.8.11:/nfs/blog /wordpress/wp-content nfs defaults,_netdev 0 0 保存退出

编辑

创建挂载点

编辑

发布共享目录

编辑

编辑

重启nfs服务

编辑

在nginx服务器上查看nfs共享目录

编辑

把wordpress的内容目录挂载到nfs

编辑

设置永久挂载

编辑

编辑

同步web2的配置文件

scp -rp /etc/nginx/*  root@192.168.8.7:/etc/nginxcd /etc/nginx/conf.d/rm -rf default.conf

编辑

拷贝到8.7

编辑

拷贝网页根目录

scp -rp /wordpress root@192.168.8.7:/

编辑

重启一下服务

编辑

8.7也可以访问了

编辑

配置LB1服务器

修改lb1的配置文件,添加负载均衡功能

cd /etc/nginx/conf.d/vim lb.conf
upstream web { server 192.168.8.7:80; server 192.168.8.8:80;}server { listen 80; server_name location / { proxy_pass http://web; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}systemctl restart nginx

编辑

保存重启

测试访问代理服务器8.5

编辑

将lb1功能复制到LB2

scp -rp /etc/nginx/* root@192.168.8.6:/etc/nginx/

编辑

重启LB2,访问测试

编辑

配置高可用

编辑

Lb1和LB2安装keepalived

进入lb1配置keepalivedrm -rf /var/run/yum.pidyum -y install keepalived

编辑

清空原有keep文件

编辑

配置LB1为master

> /etc/keepalived/keepalived.confvim /etc/keepalived/keepalived.confglobal_defs {   router_id lb1}
vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.8.254 }}

编辑

systemctl restart keepalived

编辑

配置LB2

进入lb2配置keepalivedrm -rf /var/run/yum.pidyum -y install keepalived

编辑

编辑

> /etc/keepalived/keepalived.confvim /etc/keepalived/keepalived.confglobal_defs {   router_id lb2                }
vrrp_instance VI_1 { state BACKUP interface ens33 virtual_router_id 51 priority 99 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.8.254 }}systemctl restart keepalived

查看飘逸地址

检查命令(查看漂移地址)ip a show dev ens33

编辑

编辑

访问8.254

编辑

测试keep关闭LB1

编辑

查看LB2       

编辑

LB2成为主的活跃的

进阶:

进入lb1服务器 解决nginx故障造成群集无法工作

编辑nginx监控脚本

vim /sh/check_nginx_proxy.sh#!/bin/bashkillall  -0  nginxif  [ $? -ne 0 ];then  systemctl stop keepalivedfichmod  +x  /sh/check_nginx_proxy.sh


> /etc/keepalived/keepalived.conf添加global_defs {   router_id lb1}vrrp_script check_nginx_proxy {        script “/sh/check_nginx_proxy.sh”        interval 2        weight 5}vrrp_instance VI_1 {    state MASTER    interface ens33    virtual_router_id 51    priority 100    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        192.168.8.254    }    track_script {        check_nginx_proxy    }}
systemctl restart keepalived


3)主服务器添加计划任务crontab -e* * * * * /bin/bash /sh/check_nginx_proxy.sh

完成

以上就是我们在LNMP环境下实现负载均衡和高可用性的基本思路和方法。需要注意的是,不同的系统和服务可能有其特殊的需求和问题,因此在实际操作中需要根据具体情况灵活运用。

敬请关注博主,我们将持续为您带来云计算行业及更多前沿技术的最新信息,助您把握技术动态,领先一步!”

若您渴望深入了解云计算知识,或希望与云计算、运维、网络等领域的精英们共同交流学习,欢迎您私信博主,博主将为您提供宝贵的免费学习资料,并引荐您加入专业交流群。在这里,您可以与各路大咖切磋技艺,共享行业前沿资讯,一同成长进步。期待您的参与,让我们共同开启云计算领域的探索之旅!



微信号 | a2459155652
商务合作|学术交流|简历指导


扫码关注
云计算运维学习交流群


原文作者:网络豆云计算学堂;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2023-09-15

  • 博文量
    76
  • 访问量
    33957