51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

nginx动静分离安装步骤

需求:

web01 上的 maraidb 数据库单独放到一台服务器 db01,

web01上的 静态图片资源 也单独放一台服务器上 nfs

1.先安装 mariadb

mariadb安装

  1. 启动mariadb

[root@db01 ~]# systemctl start mariadb
[root@db01 ~]# systemctl enable mariadb

mysqladmin password '123456' (刚安装上需要给root 设置密码)

3.导出10.0.0.7的所有的库
[root@web01 ~]# mysqldump -uroot -plzy123.com -A > all.sql

将web01的数据库停止禁止启动:
[root@web01 ~]# systemctl stop mariadb
[root@web01 ~]# systemctl disable mariadb

将all.sql发送到10.0.0.51的root下
[root@web01 ~]# scp all.sql 10.0.0.51:/root/

4.导入到10.0.0.51的数据库中
[root@db01 ~]# mysql -uroot < all.sql
重启数据库:
[root@db01 ~]# systemctl restart mariadb

检查数据是否导入成功

mysql -uroot -p123456 -e 'show databases;'

5.修改代码中的配置文件指向新的数据库

第一步: 要授权普通用户可以进行远程连接51数据库
[root@db01 ~]# mysql -uroot -p123456

grant all on *.* to baimei@'%' identified by '123456';

第二步: 测试通过web01是否可以使用 baimei 用户远程连接10.0.0.51

mysql -h 10.0.0.51 -ubaimei -p123456 -e 'show databases;'

第三步: 修改代码
查找到包含数据库信息的配置文件
[root@web01 wordpress]# grep -r 'lzy123.com' ./*
./wp-config.php:define( 'DB_PASSWORD', 'lzy123.com' );

修改一个用户名称和远程的数据库IP地址

2)拆分静态数据到NFS服务器

1.10.0.0.31安装NFS服务
[root@nfs ~]# yum -y install nfs-utils

2.创建匿名压缩用户www
[root@nfs ~]# groupadd -g666 www
[root@nfs ~]# useradd -u666 -g666 -M -s /sbin/nologin www

3.修改配置文件
[root@nfs ~]# cat /etc/exports
/data/wordpress 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)

4.创建必要的数据文件
[root@nfs ~]# mkdir -p /data/wordpress
[root@nfs ~]# mkdir -p /data/zh
[root@nfs ~]# chown www.www /data/*
[root@nfs ~]# ll /data/
total 0
drwxr-xr-x 2 www www 6 Apr 6 10:03 wordpress
drwxr-xr-x 2 www www 6 Apr 6 10:03 zh

5.启动NFS
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl enable nfs

6.查找wordpress上传图片的目录位置
右键复制图片链接地址: 找到上传目录uploads
http://blog.baimei.com/wp-content/uploads/2023/04/1.jpg

1)将2023目录拷贝到31的/data/wordpress/
[root@web01 ~]# scp -r /code/blog/wordpress/wp-content/uploads/* 172.16.1.
31:/data/wordpress/

NFS重新授权下下面的目录权限

[root@nfs ~]# chown -R www.www /data/wordpress/
[root@nfs ~]# ll /data/wordpress/

2)将31/data/wordpress挂载到uploads目录

WEB01:
一.安装nfs-utils
[root@web01 ~]# yum -y install nfs-utils
二.查看共享的目录
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data/zh 172.16.1.0/24
/data/wordpress 172.16.1.0/24

三.挂载NFS共享目录/data/wordpress

[root@web01 ~]# mount -t nfs 172.16.1.31:/data/wordpress /code/blog/wordpress/wp-content/uploads/
[root@web01 ~]# df -h
测试: 新建一篇文章,看看图片是否在 31上了。

如果wordpress 新建一个 文件夹,是用的Php 里边的www用户来创建的.

3)快速扩展一台WEB02服务器

1.安装Nginx
[root@web02 ~]# scp 172.16.1.7:/etc/yum.repos.d/nginx.repo /etc/yum.repos.d/
[root@web02 ~]# yum -y install nginx

2.安装PHP

批量删除PHP软件:
[root@web02 ~]# rpm -qa|grep php|xargs yum -y remove

安装PHP软件
[root@web02 ~]# tar xf php71.tar.gz
安装:
[root@web02 ~]# yum -y localinstall *.rpm

3.安装nfs-utils
[root@web02 ~]# yum -y install nfs-utils

4.创建虚拟用户www
[root@web02 ~]# groupadd -g666 www
[root@web02 ~]# useradd -u666 -g666 -M -s /sbin/nologin www

5.同步服务的配置文件到web02
同步Nginx配置:
[root@web02 ~]# rsync -avz --delete 172.16.1.7:/etc/nginx/ /etc/nginx/

同步PHP配置:
[root@web02 ~]# rsync -avz --delete 172.16.1.7:/etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf

6.同步代码文件到web02
打包code然后拷贝到web02 进行解压到/目录
.....
[root@web02 ~]# tar xf code.tar.gz -C /
[root@web02 ~]# ll /code/
total 4
drwxr-xr-x 3 root root 23 Apr 4 11:27 blog
drwxr-xr-x 14 www www 4096 Apr 4 12:05 zh
[root@web02 ~]# ll /code/blog/
total 4
drwxr-xr-x 5 www www 4096 Apr 6 09:20 wordpress

启动服务:

root@web02 ~]# systemctl start nginx php-fpm
[root@web02 ~]# systemctl enable nginx php-fpm

挂载NFS到本地上传目录
[root@web02 ~]# mount -t nfs 172.16.1.31:/data/wordpress /code/blog/wordpress/wp-content/uploads/
[root@web02 ~]# df -h

04.部署代理服务器 10.0.0.5

haosts解析到10.0.0.5 可以正常访问wordpress和知乎

2.反向代理配置

1)Nginx安装

LB01: 10.0.0.5配置
[root@lb01 ~]# scp 10.0.0.7:/etc/yum.repos.d/nginx.repo /etc/yum.repos.d/

安装Nginx
[root@lb01 conf.d]# yum -y install nginx
配置Nginx
[root@lb01 conf.d]# cat proxy.conf
server {
listen 80;
server_name blog.baimei.com;

location / {
proxy_pass http://10.0.0.7:80;
}
}
[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

windows修改HOSTS文件解析到10.0.0.5

配置携带头部和HTTP1.1长连接
proxy_set_header Host $http_host; # 携带头部信息
proxy_http_version 1.1; # 携带长链接

代理必须携带的参数及优化:
[root@lb01 conf.d]# cat proxy.conf
server {
listen 80;
server_name blog.baimei.com;

location / {
proxy_pass http://10.0.0.7:80;
proxy_set_header Host $http_host; # 携带头部信息
proxy_http_version 1.1; # 长连接
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 携带客户端IP

proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;

proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
}
}

赞(1)
未经允许不得转载:工具盒子 » nginx动静分离安装步骤