一、环境部署

mysql        172.16.1.10                                  数据库

web01      10.0.0.11      172.16.1.11             web节点

web02      10.0.0.12      172.16.1.12            web节点

nfs            172.16.1.13                                 共享存储

lb             10.0.0.14         172.16.1.14          负载均衡

二、安装部署

1.web01  web02       安装nginx php-fpm

2.nfs                         安装nfs

3.lb                           安装nginx

4.mysql                    安装mariadb

三、WordPress的操作部署

1.单节点的部署

1)web01【10.0.0.11  172.16.1.11】

#.准备wordpress的代码?放到某个指定的位置
[root@web01 ~]# mkdir /code
[root@web01 ~]# tar xf wordpress-5.2.-zh_CN.tar.gz -C /code/
[root@web01 ~]# ll /code/
drwxr-xr-x oldman oldman 9月 wordpress
#.修改权限
进程以什么样的方式去访问一个文件或目录,取决于该进程运行的身份对这个文件或目录拥有什么权限
.将 nginx php 的用户 身份 统一修改 为 www [root@web01 ~]# groupadd -g www
[root@web01 ~]# useradd -u666 -g666 www 修改nginx运行身份
[root@web01 ~]# sed -i '/^user/c user www;' /etc/nginx/nginx.conf 修改php-fpm的运行身份
[root@web01 ~]# sed -i '/^user/c user = www' /etc/php-fpm.d/www.conf
[root@web01 ~]# sed -i '/^group/c group = www' /etc/php-fpm.d/www.conf 重启nginx和php
[root@web01 ~]# systemctl restart nginx php-fpm
.授权代码的权限为www
[root@web01 ~]# chown -R www.www /code/wordpress/ #3.配置nginx,添加一个wordpress的网站
  [root@web01 ~]# cat /etc/nginx/conf.d/blog.oldxu.com.conf
   server  {
      listen 80;
      server_name blog.ld.com;
      root /code/wordpress;
      client_max_body_size 100m;
 
      location / {
           index index.php;
      }
       location ~ \.php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
 }
}
  #4.语法检查
  [root@web01 ~]# nginx -t
  #重启生效
  [root@web01 ~]# systemctl restart nginx

2)mysql:数据库的配置【172.16.1.10】

#.安装并启动数据库
[root@mysql ~]#yum install mariadb mariadb-server -y
[root@mysql ~]#systemctl enable mariadb
[root@mysql ~]#systemctl start mariadb #.mysql要配置对应的用户和密码
[root@mysql ~]#mysqladmin password ld.com #.创建一个存放WordPress的库
[root@mysql ~]# mysql -uroot -pld.com
MariaDB [(none)]>
MariaDB [(none)]> create database wordpress; #创建一个 wordpress的 库
MariaDB [(none)]> show databases; #查看所有的库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| wordpress | <----
+--------------------+
rows in set (0.00 sec) #.创建一个远程登录数据库的用户
[root@mysql ~]#mysql -uroot -pld.com
MariaDB [(none)]> grant all privileges on *.* to 'all'@'%' identified by 'ld.com'; #创建远程能连接的用户,以及密码。并进行授权
 

3)修改web01-----------将web01上的WordPress连接的数据库地址指向 172.16.1.10-------- 

[root@web01 ~]# vim /code/wordpress/wp-config.php
/** WordPress数据库的名称 */
define( 'DB_NAME', 'wordpress' );
/** MySQL数据库用户名 */
define( 'DB_USER', 'all' );
/** MySQL数据库密码 */
define( 'DB_PASSWORD', 'ld.com' );
/** MySQL主机 */
define( 'DB_HOST', '172.16.1.10' );

4)配置域名劫持

若为windows,找 C:\Windows\System32\drivers\etc\hosts
若为macos: ,请编辑 /etc/hosts

5)测试访问

在浏览器上访问  blog.ld.com 然后检查是否有异常,有异常则处理异常。

2.多节点部署

单台web服务器能抗住的访问是有限的,配置多台web服务器能提升更高的访问速度,能够接收更多的用户请求。从而达到提高冗余和它的性能的目的。所以我们再加入另一个访问节点

web02

保持和web01一模一样的配置

PS:真正的企业中,没有安装向导,没有重新安装的必要,直接拷一份过去即可。

1)nginx+PHP环境

# web01 执行的操作
[root@web01 ~]# scp /etc/yum.repos.d/nginx.repo root@172.16.1.12:/etc/yum.repos.d/nginx.repo
[root@web01 ~]# scp php.zip root@172.16.1.12:~ # web02 执行的操作
[root@web02 ~]# unzip php.zip #解压web01推送过来的压缩包
[root@web02 ~]# yum remove php-mysql php php-fpm php-common -y #若之前有安装过,则可能发生冲突,所以要先移除之前的旧版本
[root@web02 ~]# yum localinstall php/*.rpm #通过本地方式安装所有的rpm
[root@web02 ~]# yum install nginx -y 

2)nginx的配置、PHP的配置【配置文件、权限修改】

# 推送web01 的nginx配置、php配置、至web02
[root@web01 ~]# scp -rp /etc/nginx root@172.16.1.12:/etc/
[root@web01 ~]# scp -rp /etc/php-fpm.d/www.conf root@172.16.1.12:/etc/php-fpm.d/www.conf
[root@web01 ~]# scp -rp /etc/php.ini root@172.16.1.12:/etc/php.ini

3)代码推送

# 将web01上的代码推送一份至web02
[root@web01 ~]# scp -rp /code root@172.16.1.12:/

4)启动服务:nginx+PHP

# 完善
[root@web02 ~]# groupadd -g www
[root@web02 ~]# useradd -u -g www
[root@web02 ~]# chown -R www.www /code/ #因为推送过来的代码权限发生了变化,所以需要做一次修改
[root@web02 ~]# systemctl restart nginx php-fpm
[root@web02 ~]# systemctl enable nginx php-fpm

5)配置域名劫持

若为windows,找 C:\Windows\System32\drivers\etc\hosts
若为macos: ,请编辑 /etc/hosts

10.0.0.12 blog.ld.com

6)测试

将web01的nginx关掉,看web02能否正常登录

3.nfs共享存储

扩展多个节点,会导致静态资源的丢失:例如user上传了一份图片到了web01上,当user2进行查看时,却被分配到了web02上,而此时我们的web02并没有user1上传的图片,导致看到的资源不一致。而且太多的节点导致空间不足,这时候我们引入了nfs存储,可保证静态资源的一致,而且节省了web节点的空间,极大的解决了容量不足的问题。

安装一台NFS服务器,配置并共享一个目录

#第一步:安装nfs服务器
思路:任何一个服务,都是 安装 配置 启动。
#安装配置
[root@nfs ~]# yum install nfs-utils -y
[root@nfs ~]# vim /etc/exports
/data/blog 172.16.1.0/(rw,sync,all_squash,anonuid=,anongid=)
#重启
[root@nfs ~]# systemctl restart nfs
[root@nfs ~]# systemctl enable nfs
#初始化环境
[root@nfs ~]# groupadd -g www
[root@nfs ~]# useradd -u666 -g666 www
[root@nfs ~]# rm -rf /data/
[root@nfs ~]# mkdir /data/blog -p
[root@nfs ~]# chown -R www.www /data/blog/ #第二步:找到网站静态资源存放的路径,然后进行NFS的共享。( 不是必须的 )
地址:http://blog.ld.com/wp-content/uploads/2020/04/timg.jpeg 路径:/code/wordpress/wp-content/uploads///timg.jpeg 需要共享的目录:/code/wordpress/wp-content/uploads/ #第三步:在所有的web节点执行如下操作:
[root@web02 ~]# mount -t nfs 172.16.1.13:/data/blog /code/wordpress/wp-content/uploads/
[root@web01 ~]# mount -t nfs 172.16.1.13:/data/blog /code/wordpress/wp-content/uploads/
#第三步:测试
web02上传 web01查看,如果没有问题,说明共享存储对接完成。

 4.负载均衡lb

 多个web节点访问有2种方式:DNS轮询和负载均衡。

DNS依赖web节点为公网ip,这样导致服务器不安全,而且DNS轮询机制没有健康检查的功能,体验较差

负载均衡仅需要一台服务器对外,所有后端的节点走的是内网,这样保证了其安全性,而且它对后端的web节点有健康检查的机制。

#.负载均衡的blog配置:10.0.0.14
[root@lb01 ~]# cat /etc/nginx/conf.d/proxy_blog.ld.com.conf
upstream blog {
server 172.16.1.11:;
server 172.16.1.12:;
}
server {
listen ;
server_name blog.ld.com;
location / {
proxy_pass http://blog;
include proxy_params;
}
} [root@lb ~ ::]# cat /etc/nginx/proxy_params
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout ;
proxy_send_timeout ;
proxy_read_timeout ;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 128k; #.域名劫持
C:\Windows\System32\drivers\etc\hosts
10.0.0.14 blog.ld.com #.在浏览器访问
blog.ld.com

LNMP架构应用案例----WordPress的更多相关文章

  1. LNMP架构之搭建wordpress博客网站

    系统环境版本 [root@db02 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@db02 ~]# uname -a Lin ...

  2. 用lnmp架构部署wordpress网站详细步骤

    用lnmp架构部署wordpress网站 ①.下载和上传网站代码 用winscp或者xftp, 或者xshell下执行rz命令进行上传网站的包文件. ②.解压程序代码,并将程序代码保存到站点目录,并进 ...

  3. 基于LNMP架构搭建wordpress博客之安装架构说明

    架构情况 架构情况:基于LNMP架构搭建wordpress系统 软件包版本说明: 系统要求 :  CentOS-6.9-x86_64-bin-DVD1.iso PHP版本  :  php-7.2.29 ...

  4. nginx详解反向代理、负载均衡、LNMP架构上线动态网站(week4_day1_part1)-技术流ken

    nginx介绍 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理 ...

  5. Linux(12):期中架构(4)--- 前端部分:HTTP & Nginx & LNMP架构

    HTTP协议概念原理说明 1. 当用户访问一个网站时经历的过程 # ①. 利用DNS服务,将输入的域名解析为相应的IP地址 a 本地主机输入域名后,会查询本地缓存信息和本地hosts b 本地主机会向 ...

  6. nginx详解反向代理,负载均衡,LNMP架构上线动态网站

    1.nginx介绍 nginx.org Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/ ...

  7. LNMP架构部署

    第1章 部署LNMP架构步骤 1.1 ①部署Linux系统(OK) 基本优化完成(ip地址设置 yum源更新 字符集设置) 安全优化完成(iptables关闭 selinux关闭 /tmp/ 1777 ...

  8. 企业级LNMP架构搭建实例(基于Centos6.x)

    1.1 部署LNMP架构说明 1.1.1 LNMP架构内容 01.部署linux系统 02.部署nginx网站服务 03.部署mysql数据库服务 04.部署php动态解析服务 1.1.2 配置LNM ...

  9. LNMP构建动态网站WordPress

    LNMP构建动态网站wordpress 一.部署LNMP架构 1.安装nginx #配置nginx源 cat>/etc/yum.repos.d/nginx.repo<<-EOF [N ...

随机推荐

  1. Vue封装公共组件TarBar

    github:https://github.com/zwnsyw/TabBar 一.实现简单思路 1.在页面底部有一个单独的TabBar组件1.1自定义TabBar组件,在APP中使用1.2让TabB ...

  2. 基于使用ISCSI存储的ibmmq通过heartbeat实现HA方案以及碰到的问题总结

    一.背景 ibmmq是一种传统架构的mq产品,运行稳定,有其自身优点,但在高可用(HA)这一块需要使用公司根据自身需求选用高可用(HA)产品,但由于市面HA商业产品较贵,所以使用linux操作系统级的 ...

  3. bat 脚本定时删除备份文件

    删除 D:\yswbak 目录下rar类型 6天前的 文件 @echo off forfiles /p D:\yswbak /m *.rar /d -6 /c "cmd /c del @pa ...

  4. cubic-bezier() 函数

    2020-03-13 cubic-bezier() 函数 ubic-bezier() 函数定义了一个贝塞尔曲线(Cubic Bezier). 贝塞尔曲线曲线由四个点 P0,P1,P2 和 P3 定义. ...

  5. Python的数据的基本类型

    基本数据类型 int整数 str 字符串   一般不存放大量的数据 bool  布尔值,用来判断. True,False    list  列表.存放大量数据,[]表示,里面可以放各种数据类型     ...

  6. matlab 梯度法(最速下降法)

    norm(A,p)当A是向量时norm(A,p) Returns sum(abs(A).^zhip)^(/p), for any <= p <= ∞.norm(A) Returns nor ...

  7. Excel常用公式大全

    公式是单个或多个函数的结合运用. AND “与”运算,返回逻辑值,仅当有参数的结果均为逻辑“真(TRUE)”时返回逻辑“真(TRUE)”,反之返回逻辑“假(FALSE)”. 条件判断 AVERAGE ...

  8. Appium查看应用包名

    方式一没有apk 如果应用已经安装在手机上了(例如应用商城下载).可以直接打开手机上该应用, 进入到要操作的界面然后执行: adb shell dumpsys activity recents | f ...

  9. WeChair项目Alpha冲刺(5/10)

    团队项目进行情况 1.昨日进展    Alpha冲刺第五天 昨日进展: 前端:完成小程序登录态的定义 后端:成功部署项目到服务器并能通过域名访问项目 数据库:调整属性数据类型 2.今日安排 前端:完善 ...

  10. Dubbo面试专题

    Dubbo面试专题 1. 什么是dubbo Dubbo是阿里巴巴SOA服务化治理方案的核心框架,是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. 2.  ...