您现在的位置是:主页 > news > 文化建设/长春网络优化最好的公司
文化建设/长春网络优化最好的公司
admin2025/6/3 4:53:18【news】
简介文化建设,长春网络优化最好的公司,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
(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共享存储服务器,规划目录,配置好权限
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,有的话就不会退出