云计算架构学习之LNMP架构部署、架构拆分、负载均衡-会话保持

一.LNMP架构部署

1.1. LNMP服务搭建

1.磁盘信息
2.内存
3.负载信息
4.Nginx你们公司都用来干嘛
5.文件句柄(文件描述符 打开文件最大数量)
6.你处理过系统中的漏洞吗  SSH漏洞
7.你写过什么shell脚本
8.监控通过什么告警 zabbix
  具体监控哪些内容
9.mysql redis查询  
你好HR我这边面完了,但是面试官啥技术都没问题.我也不知道是啥问题。要不您这边先沟通一下,有什么问题您给我联系。

1.2. 测试PHP和mysql说起来的连通性

```bash
#需要再php的配置文件中写入数据库的IP+端口+用户名+密码可以测试是否连接数据库
[root@web01 conf.d]# cat /code/mysql.php
<?php
    $servername = "localhost";
    $username = "root";
    $password = "lzy123.com";

    // 创建连接
    $conn = mysqli_connect($servername, $username, $password);

    // 检测连接
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    echo "小哥哥,php可以连接MySQL...";
?>

<img style='width:100%;height:100%;' src=/31.png>
#注意苍姐姐需要自己准备

浏览器访问:
php.oldboy.com/mysql.php
```

1.3. 安装部署wordpress流程

``bash 1.创建nginx配置文件 [root@web01 conf.d]# cp php.conf wp.conf [root@web01 conf.d]# cat wp.conf server { listen 80; server_name www.wp.com; root /code/wordpress;

    location / {index index.php index.html;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}

}

2.测试nginx [root@web01 conf.d]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

3.重启生效 [root@web01 conf.d]# systemctl restart nginx

4.创建代码目录 [root@web01 conf.d]# mkdir /code/wordpress

5.下载wordpress代码 [root@web01 conf.d]# cd /code/wordpress/ [root@web01 wordpress]# wget https://cn.wordpress.org/wordpress-5.0.3-zhCN.tar.gz [root@web01 wordpress]# tar xf wordpress-5.0.3-zhCN.tar.gz

6.解压代码 [root@web01 wordpress]# tar xf wordpress-5.0.3-zh_CN.tar.gz [root@web01 wordpress]# mv wordpress/* .

7.hosts解析 10.0.0.7 www.wp.com 浏览器访问业务 ```

vim /etc/php-fpm.d/www.conf

1.4. 安装部署知乎业务

``bash 1.配置Nginx [root@web01 conf.d]# cat zh.conf server { listen 80; server_name www.zh.com; root /code/zh;

    location / {index index.php index.html;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}

}

[root@web01 conf.d]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful [root@web01 conf.d]# systemctl restart nginx

2.创建代码目录 [root@web01 conf.d]# mkdir /code/zh [root@web01 conf.d]# cd /code/zh

3.上传代码 [root@web01 zh]# ll total 24648 -rw-r--r-- 1 root root 25238972 Aug 7 09:28 WeCenterV3.6.2.zip [root@web01 zh]# unzip WeCenterV3.6.2.zip 4.解压代码 [root@web01 zh]# chown -R www.www ../zh

5.安装部署 windows-hosts解析 10.0.0.7 www.zh.com

6.创建数据库zh [root@web01 ~]# mysql -uroot -plzy123.com -e "create database zh;" [root@web01 ~]# mysql -uroot -plzy123.com -e "show databases;" +--------------------+ | Database | +--------------------+ | informationschema | | mysql | | performanceschema | | wordpress | | zh | +--------------------+

```

二.架构拆分

2.1 LNMP架构拆分

```bash
Nginx请求动态数据的流程
[root@web01 conf.d]# cat wp.conf 
server {
        listen 80;
        server_name www.wp.com;
        root /code/wordpress;

        location / {
                index index.php index.html;
        }

        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        }
}
用户请求www.wp.com/ 则location /匹配返回index.php给浏览器
浏览器重新发起请求www.wp.com/index.php,正好匹配到第二个location 转发给PHP服务进行解析

2.2 数据库拆分流程

![image-20241211090739833](day35-%E6%9E%B6%E6%9E%84%E6%8B%86%E5%88%86.assets/image-20241211090739833.png)



```bash
1.准备51服务器,安装mysql服务
[root@db01 ~]# yum -y install mariadb-server

2.启动数据库
[root@db01 ~]# systemctl start mariadb

3.web01导出数据库所有数据
[root@web01 ~]# mysqldump -uroot -plzy123.com -A > all.sql
检查导出的库是否正确
vim all.sql  # 搜索下你发布的博文是否在sql语句

4.将all.sql拷贝到51服务器
[root@web01 ~]# scp all.sql 10.0.0.51:/root/

5.db51服务器将all.sql导入数据库
[root@db01 ~]# ll
total 2180
-rw-r--r-- 1 root root 2232120 Dec 11 09:23 all.sql
[root@db01 ~]# mysql -uroot < all.sql 
[root@db01 ~]# systemctl restart mariadb

查看数据库信息
[root@db01 ~]# mysql -uroot -plzy123.com
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.3.39-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)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| wordpress          |
| zh                 |
+--------------------+
5 rows in set (0.001 sec)


6.数据库为了安全,禁止root远程连接.必须使用普通账号进行远程连接
测试root远程连接
[root@web01 ~]# mysql -h172.16.1.51 -uroot -plzy123.com
ERROR 1130 (HY000): Host '172.16.1.7' is not allowed to connect to this MariaDB server


# 授权lzy普通账号密码为lzy123.com 管理所有库和所有的表
[root@db01 ~]# mysql -uroot -plzy123.com
MariaDB [(none)]> grant all on  *.* to lzy@'%' identified by 'lzy123.com';
Query OK, 0 rows affected (0.001 sec)

测试lzy普通账号远程连接
[root@web01 ~]# mysql -h 172.16.1.51 -ulzy -plzy123.com



7.直接修改业务代码的数据信息指向到10.0.0.51
[root@web01 wordpress]# grep -r 'lzy123.com' ./*
./wp-config.php:define('DB_PASSWORD', 'lzy123.com');

#修改连接信息 主机信息172.16.1.51 远程连接用户 lzy 而不能使用root
[root@web01 wordpress]# grep -C6 'DB_USER' wp-config.php

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');

/** MySQL数据库用户名 */
define('DB_USER', 'lzy');

/** MySQL数据库密码 */
define('DB_PASSWORD', 'lzy123.com');

/** MySQL主机 */
define('DB_HOST', '172.16.1.51');



8.停止web01的数据库
[root@web01 ~]# systemctl stop mariadb
[root@web01 ~]# systemctl disable mariadb

2.3 静态数据共享

```bash
1.安装nfs服务
yum -y install nfs-utils
2.配置nfs服务
vim /etc/exports
/data/wp  172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
创建目录和用户
groupadd -g666 www
useradd -u666 -g666 -M -s /sbin/nologin www
mkdir /code/wp -p
chown www.www /data/wp

3.启动nfs服务
systemctl start nfs
systemctl enable nfs

4.将完整的图片拷贝到31服务器
[root@web02 ~]# scp -r /code/wordpress/wp-content/uploads/* 10.0.0.31:/data/wp/


web服务器挂载nfs
web01:
[root@web01 ~]# mount -t nfs 172.16.1.31:/data/wp /code/wordpress/wp-content/uploads/
[root@web01 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
devtmpfs              459M     0  459M   0% /dev
tmpfs                 475M     0  475M   0% /dev/shm
tmpfs                 475M   43M  432M   9% /run
tmpfs                 475M     0  475M   0% /sys/fs/cgroup
/dev/sda3              48G  4.3G   44G   9% /
tmpfs                 475M     0  475M   0% /tmp
/dev/sda1             195M  122M   74M  63% /boot
tmpfs                  95M     0   95M   0% /run/user/0
172.16.1.31:/data/wp   48G  3.8G   45G   8% /code/wordpress/wp-content/uploads
加入开机自动挂载

WEB02:
[root@web02 ~]# mount -t nfs 172.16.1.31:/data/wp /code/wordpress/wp-content/uploads/
[root@web02 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
devtmpfs              459M     0  459M   0% /dev
tmpfs                 475M     0  475M   0% /dev/shm
tmpfs                 475M  6.8M  468M   2% /run
tmpfs                 475M     0  475M   0% /sys/fs/cgroup
/dev/sda3              48G  4.1G   44G   9% /
tmpfs                 475M     0  475M   0% /tmp
/dev/sda1             195M  122M   74M  63% /boot
tmpfs                  95M     0   95M   0% /run/user/0
172.16.1.31:/data/wp   48G  3.8G   45G   8% /code/wordpress/wp-content/uploads
加入开机自动挂载


```

2.4 代理介绍

2.5 代理服务器配置

```bash
1.配置仓库
[root@lb01 ~]# scp 10.0.0.7:/etc/yum.repos.d/nginx.repo /etc/yum.repos.d/
2.安装nginx
[root@lb01 ~]# yum -y install nginx

3.配置代理
[root@lb01 conf.d]# vim lb.conf
server {
        listen 80;
        server_name www.wp.com;

        location / {
        proxy_pass http://10.0.0.7;
        }
}                                                                                                                                                                                                                                             
[root@lb01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01 conf.d]# systemctl restart nginx

4.windowshosts指向到10.0.0.5
10.0.0.5 www.wp.com
```
 

2.6 配置负载均衡

```bash
[root@lb01 nginx]# vim conf.d/lb.conf 
upstream webs {
        server 172.16.1.7;
        server 172.16.1.8;
}
server {
        listen 80;
        server_name www.wp.com;
        
        location / {
        proxy_pass http://webs;
        include proxy_params;
        }
}
                                          
[root@lb01 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@lb01 nginx]# systemctl restart nginx

```bash
[root@lb01 conf.d]# cat lb.conf
upstream webs {
    server 172.16.1.7;
    server 172.16.1.8;
}
server {
    listen 80;
    server_name www.wp.com;

    location / {
    proxy_pass http://webs;
    include proxy_params;
    }
}

server {
    listen 80;
    server_name www.test.com;
    location / {
    proxy_pass http://webs;
    include proxy_params;
    }
}
[root@lb01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@lb01 conf.d]# systemctl restart nginx

web01配置静态页面
[root@web01 conf.d]# cat test.conf
server {
    listen 80;
    server_name www.test.com;

    location / {
    root /code/test;
    index index.html;
    }
}
[root@web01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
snginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 conf.d]# systemctl restart nginx
[root@web01 conf.d]# mkdir /code/test
[root@web01 conf.d]# echo web01..... > /code/test/index.html

三.负载均衡-会话保持

3.1 NFS不能直接挂载

3.2 反向代理解析

3.3 负载均衡调度算法

3.4 Nginx编译安装

3.5 会话保持

3.6 部署phpmyadmin

3.7 配置PHP文件SESSION指向redis

3.8 配置phpRedis模块

3.9 负载均衡知识点小结 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8362.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[BSidesCF 2020]Had a bad day1

题目 这里有传参 文件包含使用伪协议读取flag 先读取index.php查看 /index.php?categoryphp://filter/readconvert.base64-encode/resourceindex 解码 index.php源码 <?php$file $_GET[category];if(isset($file)){if( strpos( $file, "woofers" ) ! false …

12 款开源OCR发 PDF 识别框架

2024 年 12 款开源文档解析框架的选型对比评测&#xff1a;PDF解析、OCR识别功能解读、应用场景分析及优缺点比较 这是该系列的第二篇文章&#xff0c;聚焦于智能文档处理&#xff08;特别是 PDF 解析&#xff09;。无论是在模型预训练的数据收集阶段&#xff0c;还是基于 RAG…

银行卡三要素验证接口:方便快捷地实现银行卡核验功能

银行卡三要素验证API&#xff1a;防止欺诈交易的有力武器 随着互联网的发展&#xff0c;电子支付方式也越来越普及。在支付过程中&#xff0c;银行卡是最常用的支付工具之一。然而&#xff0c;在一些支付场景中&#xff0c;需要对用户的银行卡信息进行验证&#xff0c;以确保支…

Lite.Ai.ToolKit - 一个轻量级的 C++ 工具包

&#x1f6e0;**Lite.Ai.ToolKit**&#xff1a;一个轻量级的 C 工具包&#xff0c;包含 100 个很棒的 AI 模型&#xff0c;例如对象检测、人脸检测、人脸识别、分割、遮罩等。请参阅 Model Zoo 和 ONNX Hub、MNN Hub、TNN Hub、NCNN Hub。 3700 Stars 711 Forks 0 Issues 6 贡献…

node.js 07.npm下包慢的问题与nrm的使用

一.npm下包慢 因为npm i 默认从npm官网服务器进行下包,但是npm官网服务器是海外服务器所以响应很慢. 于是我们通过npm下包的时候通常用淘宝镜像进行下包,下面是切换到淘宝镜像地址下包的操作. 二.nrm的使用 nrm是一个管理切换npm下包地址的工具,可以快速切换下包的地址. 安…

读书笔记--分布式服务架构对比及优势

本篇是在上一篇的基础上&#xff0c;主要对共享服务平台建设所依赖的分布式服务架构进行学习&#xff0c;主要记录和思考如下&#xff0c;供大家学习参考。随着企业各业务数字化转型工作的推进&#xff0c;之前在传统的单一系统&#xff08;或单体应用&#xff09;模式中&#…

基于ADS的电感和变压器的建模过程

1. 电感二端口建模 对于固定尺寸单圈电感&#xff0c;从0.5G-200GHz的仿真&#xff0c;并提取其模型 如果想要在50GHz前把模型建准&#xff0c;仿真可能要建到200G&#xff0c;因为需要高频的数据&#xff0c;频率越高信息也越多。首先要调用文件由于数据是存在一个文件夹里面的…

使用Maxscript定义纹理贴图的方法

在3ds Max中,MaxScript 是一种用于插件编写和自动化任务的强大工具。通过MaxScript,你可以创建和操作对象、材质、灯光等等。要为材质分配纹理贴图,你可以按照以下方法来编写脚本。直接代码: myBmp = bitmaptexture filename:"D:\map001.tga" meditmaterials[1]…

初阶数据结构:链表(二)

目录 一、前言 二、带头双向循环链表 1.带头双向循环链表的结构 &#xff08;1)什么是带头&#xff1f; (2)什么是双向呢&#xff1f; &#xff08;3&#xff09;那什么是循环呢&#xff1f; 2.带头双向循环链表的实现 &#xff08;1&#xff09;节点结构 &#xff08;2…

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(九)(完结篇)

文章目录 一、成绩查询模块实现1、学生成绩查询功能实现1.1 页面设计1.2 前端页面实现1.3 后端功能实现2、成绩分段查询功能实现2.1 页面设计2.2 前端页面实现2.3 后端功能实现二、试卷练习模块实现三、我的分数模块实现1、 页面设计2、 前端页面实现3、 后端功能实现四、交流区…

环境搭建--vscode

vscode官网下载合适版本 安装vscode插件 安装 MinGW 配置环境变量 把安装目录D&#xff1a;\mingw64 配置在用户的环境变量path里即可 选择用户环境变量path 点确定保存后开启cmd输入g&#xff0c;如提示no input files 则说明Mingw64 安装成功&#xff0c;如果提示g 不是内…

爱的魔力转圈圈,基于carsim与simulink模拟仰望u8原地调头

仰望U8原地转向的示意图如下&#xff0c;不动方向盘的情况下&#xff0c;车可以自己转圈圈&#xff1a; 原理也很简单&#xff0c;仰望u8是四轮驱动&#xff0c;四个轮子都单独由四个轮边电机驱动。主要我们将左右的车轮轮速控制成左右两边轮速相同&#xff0c;但是方向相反&am…

1.1第1章DC/DC变换器的动态建模-1.1状态平均的概念--电力电子系统建模及控制 (徐德鸿)--读书笔记

电力电子系统一般由电力电子变换器&#xff08;滤波电路和开关&#xff09;、PWM 调制器、驱动电路、反馈控制单元构成&#xff0c;如图1-1所示。由控制理论的知识&#xff0c;电力电子系统的静态和动态性能的好坏与反馈控制设计密切相关。要进行反馈控制设计&#xff0c;首先要…

6. 使用springboot做一个音乐播放器软件项目【1.0版项目完结】附带源码~

#万物OOP 注意&#xff1a; 本项目只实现播放音乐和后台管理系统。 不分享任何音乐歌曲资源。 上一篇文章我们 做了音乐播放器后台的功能。参考地址&#xff1a; https://jsonll.blog.csdn.net/article/details/145214363 这个项目已经好几天也没更新了&#xff0c;因为临近放…

WGCLOUD使用介绍 - 如何监控ActiveMQ和RabbitMQ

根据WGCLOUD官网的信息&#xff0c;目前没有针对ActiveMQ和RabbitMQ这两个组件专门做适配 不过可以使用WGCLOUD已经具备的通用监测模块&#xff1a;进程监测、端口监测或者日志监测、接口监测 来对这两个组件进行监控

豆包MarsCode:字符串字符类型排序问题

问题描述 思路分析 我们需要对字符串中的字母、数字、问号按照规则进行排序&#xff0c;具体要求是&#xff1a; 问号的位置不变。数字的位置不变&#xff0c;但数字之间要按照从大到小排序。字母的位置不变&#xff0c;但字母之间要按照字典序排序。 解决此问题的思路分为以…

[STM32 标准库]定时器输出PWM配置流程 PWM模式解析

前言&#xff1a; 本文内容基本来自江协&#xff0c;整理起来方便日后开发使用。MCU&#xff1a;STM32F103C8T6。 一、配置流程 1、开启GPIO&#xff0c;TIM的时钟 /*开启时钟*/RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //开启TIM2的时钟RCC_APB2PeriphClockC…

无人机红外热成像:应急消防的“透视眼”

无人机红外热成像&#xff1a;应急消防的“透视眼” 亲爱的小伙伴们&#xff0c;每年一到夏天&#xff0c;应急消防的战士们就像上紧了发条的闹钟&#xff0c;时刻准备应对各种灾害。炎热天气让火灾隐患“蹭蹭”往上涨&#xff0c;南北各地还有防洪救灾、台风、泥石流等灾害轮…

【Redis】常见面试题

什么是Redis&#xff1f; Redis 和 Memcached 有什么区别&#xff1f; 为什么用 Redis 作为 MySQL 的缓存&#xff1f; 主要是因为Redis具备高性能和高并发两种特性。 高性能&#xff1a;MySQL中数据是从磁盘读取的&#xff0c;而Redis是直接操作内存&#xff0c;速度相当快…

LLM - 大模型 ScallingLaws 的指导模型设计与实验环境(PLM) 教程(4)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/145323420 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Scalin…