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

server/2025/1/23 10:33:53/

一.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 静态数据共享

2.4 代理介绍

2.5 代理服务器配置

2.6 配置负载均衡

三.负载均衡-会话保持

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.ppmy.cn/server/160706.html

相关文章

ChatGPT是强人工智能吗?

ChatGPT是强人工智能吗? 本文从人工智能发展的三个阶段的角度,分析当前强大的AI大模型所处的阶段,并通过对比各阶段的定义,明确各阶段的特点和未来发展方向; Narrow AI&#xff08;弱人工智能&#xff09;、AGI&#xff08;人工通用智能&#xff09;和 ASI&#xff08;人工超级…

跨域cookie携带问题总结

背景 我们知道很多场景&#xff0c;都需要前端请求带上cookie&#xff0c;例如用户鉴权、登陆校验等。而有些场景下&#xff0c;我们会发现请求不会带上cookie&#xff0c;这是为什么呢&#xff1f; 概念 cookie是种在域名下的信息。只有请求同域且同站的请求&#xff0c;才…

VBA语言的安全开发

VBA语言的安全开发 在当今信息化迅猛发展的时代&#xff0c;数据安全和信息保护显得尤为重要。VBA&#xff08;Visual Basic for Applications&#xff09;作为一种广泛应用于Microsoft Office系列软件的编程语言&#xff0c;因其简易性和强大功能&#xff0c;成为了众多企业和…

Ubuntu20.04 安装 cartographer

刚装完&#xff0c;赶紧记录下来&#xff01;——2025.1.22 官方网页&#xff1a; Compiling Cartographer ROS — Cartographer ROS documentation Building & Installation In order to build Cartographer ROS, we recommend using wstool and rosdep. For faster b…

HTML 元素详解:从入门到精通

HTML&#xff08;HyperText Markup Language&#xff09;是构建网页的基础语言&#xff0c;而 HTML 元素则是构成网页的基本单位。无论是网页的结构、内容还是样式&#xff0c;都离不开 HTML 元素。本文将深入探讨 HTML 元素的概念、结构、属性以及常见的使用方法&#xff0c;帮…

研究 Day.js 及其在 Vue3 和 Vue 框架中的应用详解

前言 在前端开发中&#xff0c;日期和时间处理是一个常见需求。随着技术的发展&#xff0c;我们有了更多高效、灵活的日期库可供选择。Day.js 就是一个轻量级、易于使用的 JavaScript 日期库&#xff0c;其灵感来源于 Moment.js&#xff0c;但体积更小&#xff0c;速度更快。本…

2025.1.19机器学习笔记:PINN文献精读

第三十周周报 一、文献阅读题目信息摘要Abstract创新点物理背景网络框架实验实验一&#xff1a;直道稳定流条件实验二&#xff1a;环状网络中的非稳定流条件 结论缺点及展望 二、代码实践总结 一、文献阅读 题目信息 题目&#xff1a;《Enhanced physics-informed neural net…

微服务与docker

准备工作 在课前资料中给大家提供了黑马商城项目的资料,我们需要先导入这个单体项目。不过需要注意的是,本篇及后续的微服务学习都是基于Centos7系统下的Docker部署,因此你必须做好一些准备: Centos7的环境及一个好用的SSH客户端装好Docker会使用Docker如果是学习过上面Doc…