您现在的位置是:主页 > news > 文化建设/长春网络优化最好的公司

文化建设/长春网络优化最好的公司

admin2025/6/3 4:53:18news

简介文化建设,长春网络优化最好的公司,seo免费教程,超好看的排版素材网站文章目录1. LNMP架构回顾2. 拆分数据库至独立服务器3. 拆分wordpress数据库至独立服务器4. 拆分zh与edusohu数据库至独立服务器5. 扩展多台web6. 共享多台web的静态资源7. 总结内容1. LNMP架构回顾 自己搭建的博客系统和公司的区别: web界面安装的本质:…

文化建设,长春网络优化最好的公司,seo免费教程,超好看的排版素材网站文章目录1. LNMP架构回顾2. 拆分数据库至独立服务器3. 拆分wordpress数据库至独立服务器4. 拆分zh与edusohu数据库至独立服务器5. 扩展多台web6. 共享多台web的静态资源7. 总结内容1. LNMP架构回顾 自己搭建的博客系统和公司的区别: web界面安装的本质:…

文章目录

    • 1. LNMP架构回顾
    • 2. 拆分数据库至独立服务器
    • 3. 拆分wordpress数据库至独立服务器
    • 4. 拆分zh与edusohu数据库至独立服务器
    • 5. 扩展多台web
    • 6. 共享多台web的静态资源
    • 7. 总结内容

1. LNMP架构回顾

自己搭建的博客系统和公司的区别:
web界面安装的本质:创建一个文件,这个文件会生成一些数据库的
连接信息,真正公司的代码,这些数据库的信息是在独立的一个机子
上不动,只需要替换新的代码就行了

这个不是真正的代码,是一个开源的项目,为了便于新手部署,
做了一个向导页面,下一步下一步,会把向导页面生成一个配置文件,
数据库的就生成数据库的文件,什么密码用户名自动帮你写到数据库里。

lnmp架构实现原理:

	nginx --> fastcgi --> php-fpmfastcgi_pass address:port;  10.0.0.8:9000; # 适合松耦合架构unix:/tmp/php.socket # 适合nginx和php在一台机器上

关闭后端的php则会出现502错误:

在这里插入图片描述

如果在php程序独立的跑在一台机器上(在一个机器上一样,不能通过9000端口发送请求),那么nginx如果连接不上后台的主机,则会报502的错误

nginx+php与apache+php的区别:

nginx 是以fastcgi协议调用的php apache是以模块的方式加载的php
用yum装完php后,会自动成为apache的一个模块,只要一重启apache,相当于把php也起动了  

拆分数据库提高网站的响应(需要扩张web集群),cookie和session也需要知道

2. 拆分数据库至独立服务器

在这里插入图片描述

在这里插入图片描述

3. 拆分wordpress数据库至独立服务器

(1)备份172.16.1.7服务器上mysql的数据

mysqldump -uroot -p'Bgx123.com' --all-databases --single-transaction > mysql-all.sqlmysqldump -uroot -p'Bgx123.com' -A > mysql-all.sql

(2)传输172.16.1.7的备份数据至172.16.1.51的服务器上

[root@web01 ~]# scp mysql-all.sql root@172.16.1.51:/tmp

(3)需要先在172.16.1.51服务器上安装mysql服务,然后使用mysql命令进行还原

[root@db01 ~]# yum install mariadb-server mariadb -y
[root@db01 ~]# systemctl enable mariadb
[root@db01 ~]# systemctl start mariadb
[root@db01 ~]# mysql </tmp/mysql-all.sql
[root@db01 ~]# systemctl restart mariadb [root@db01 ~]# mysql -uroot -pBgx123.com
MariaDB [(none)]> show databases;

(4)将web程序连接的本地数据库修改到远程数据库上

	1)先在本地172.16.1.7服务器上停止本地的数据库[root@web01 ~]# systemctl disable mariadb[root@web01 ~]# systemctl stop mariadb2)在172.16.1.51的服务器上授权远程主机能够能连接mysql数据库(默认是拒绝对外连接的,所以web07主机连不上远端数据库服务器,所以必须授权)[root@db01 ~]# mysql -uroot -pBgx123.comMariaDB [(none)]> grant all privileges on *.* to oldboy@'%' identified by 'Bgx123.com'; # *.* 授权所有库所有表 %  通过任意网段过来(取决于跟这网段通)一般授权不会这么大3)在172.16.1.7服务器上测试远程账户能否连接172.16.1.51的数据库[root@web01 wordpress]# yum install mariadb -y[root@web01 wordpress]# mysql -h 172.16.1.51 -uoldboy -pBgx123.comMariaDB [(none)]> 4)在172.16.1.7服务器上修改web程序连接数据库的配置文件[root@web01 wordpress]# vim /code/wordpress/wp-config.php// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** ///** WordPress数据库的名称 */define('DB_NAME', 'wordpress');/** MySQL数据库用户名 */define('DB_USER', 'oldboy');/** MySQL数据库密码 */define('DB_PASSWORD', 'Bgx123.com');/** MySQL主机 */define('DB_HOST', '172.16.1.51');

(5)可以用navicat来测试是否成功拆分数据库到单独的db01数据库(可以在浏览器中输入blog.oldboy.com/wp-admin访问后台)

在这里插入图片描述

在这里插入图片描述

4. 拆分zh与edusohu数据库至独立服务器

因为在做查分wordpress的时候,已经把数据可全部迁移过去了,所以只需要把zh和edu的远程数据库连接上就可以了。

(1)拆分172.16.1.7wecenter连接远程172.16.1.51数据库信息

[root@web01 zh]# grep -R "Bgx123.com" *system/config/database.php:  'password' => 'Bgx123.com',  [root@web01 zh]# vim /code/zh/system/config/database.php   $config['driver'] = 'MySQLi';^M$config['master'] = array ('charset' => 'utf8','host' => '172.16.1.51','username' => 'oldboy','password' => 'Bgx123.com','dbname' => 'zh',);^M

(2)拆分172.16.1.7 edusoho连接远程172.16.1.51数据库信息

	[root@web01 edusoho]# vim /code/edusoho/app/config/parameters.ymldatabase_driver: pdo_mysqldatabase_host: 172.16.1.51database_port: 3306database_name: edusohodatabase_user: oldboydatabase_password: 'Bgx123.com'必须清理缓存[root@web01 edusoho]# rm -rf /code/edusoho/app/cache/*

5. 扩展多台web

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9TNH1n9X-1675612188880)(967668F7865C4D43BC187B6D62F28B74)]
在这里插入图片描述

(1)统一环境

0)准备对应的www用户[root@web02 ~]# groupadd -g666 www[root@web02 ~]# useradd -u666 -g666 www1)拷贝web01上面的yum仓库[root@web02 ~]# scp root@172.16.1.7:/etc/yum.repos.d/*.repo /etc/yum.repos.d/2)安装nginx和php[root@web02 ~]# yum -y install nginx php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb

(2)统一配置(同步web01上面的配置到web02)

1)同步nginx[root@web02 ~]# rsync  -avz --delete root@172.16.1.7:/etc/nginx/ /etc/nginx/[root@web02 ~]# nginx -t[root@web02 ~]# systemctl enable nginx[root@web02 ~]# systemctl start nginx2)同步php(/etc/php-fpm.conf /etc/php-fpm.d  /etc/php.ini)[root@web02 ~]# rsync  -avz --delete root@172.16.1.7:/etc/php* /etc/[root@web02 ~]# systemctl enable php-fpm[root@web02 ~]# systemctl start php-fpm

(3)统一代码

[root@web01 ~]# tar czf code.tar.gz /code				#在web01上打包站点
[root@web01 ~]# scp code.tar.gz root@172.16.1.8:/tmp	#在web01上将打包好的代码发送给web02
[root@web02 ~]# tar xf /tmp/code.tar.gz -C /			#在web02上进行解压,并解压到/目录下

(4)配置解析,进行访问,测试

# 10.0.0.7   blog.oldboy.com  
10.0.0.8   blog.oldboy.com

6. 共享多台web的静态资源

(1)准备172.16.1.31共享存储服务器,规划目录,配置好权限
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WR1sYQ5T-1675612188881)(F740BA43BDB74BFBB20BF76A7AF92BFD)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sW39q9W4-1675612188882)(E774669504E54077A76E82860F74DDA7)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GMv2FbSd-1675612188883)(4EBDF4A7AFC74F1B83617AA830CABA27)]

0)创建用户[root@nfs ~]# groupadd -g666 www[root@nfs ~]# useradd -u666 -g666 www	1)安装[root@nfs ~]# yum install nfs-utils -y2)配置[root@nfs ~]# cat /etc/exports/data/blog 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)/data/zh 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)/data/edu 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)3)根据配置,创建目录,准备用户,授权等等[root@nfs ~]# rm -rf /data/[root@nfs ~]# mkdir /data/{blog,zh,edu} -p[root@nfs ~]# chown -R www.www /data/4)启动[root@nfs ~]# systemctl enable nfs-utils [root@nfs ~]# systemctl restart nfs-utils

(2)将图片较多的web02服务器,推送到nfs共享存储上

http://blog.oldboy.com/wp-content/uploads/2019/01/timg.jpg[root@web02 ~]# cd /code/wordpress/wp-content
[root@web02 wp-content]# scp -r uploads/* root@172.16.1.31:/data/blog/注意:需要上nfs服务器上进行重新的递归授权,否则会出现无法上传文件的错误
[root@nfs ~]# chown -R www.www /data/

(3)web01和web02分别都进行挂载,此时图片进行实现了共享

mount -t nfs 172.16.1.31:/data/blog  /code/wordpress/wp-content/uploads/

7. 总结内容

内容小结:

虚拟机还原,web上,安装nginx与php,记得做快照
1.lnmp
2.拆分数据库
3.拆分静态资源
4.扩展多台web
5.研究前端用负载均衡web01  web02    安装nginx +php
mysql 	        安装mariadb-server
nfs-utils	    安装nfs

为什么我们再次打开页面直接就是登陆状态???

一会登录web1,一会登录web2,一直在登录的状态
第一次的时候客户端cookie给服务端,服务端会生成一个所谓的session,session会存到数据库中去
每次验证是否登录,上数据库查是否有这个id,有的话就不会退出