记一次负载均衡+NFS博客站点搭建的总结

起因

  
原本是打算搭建个小博客站点做实验,突然想起之前遇到的一次负载均衡失效的经历,便打算做一次实验重现当初的情况并记录下来,防止日后再遇到类似的情况懵逼。
  

复现流程

  

架构体系

  
  原环境:前端依赖nginx做负载均衡的调度器,web端是httpd+php-fpm分离,分别处理动态和静态页面,后端mariadb数据库做数据存储,NFS服务器提供站点文件作出共享,防止,web端出现站点文件不一致的情况。
  模拟环境:nginx做负载均衡器,httpd和php-fpm共存在同一主机,NFS和mariadb分处2台主机,整个模拟一共使用5台主机。
  

软件环境与架构图

  
前提:
所有节点主机全部关闭selinux,清空防火墙规则。
系统 httpd php nginx maiadb
CentOS 7 httpd2.4 5.4.14 1.10.2 10.2.15

  
架构图

  

配置各个节点

  

配置nginx节点

  
1.安装nginx

yum install nginx -y

2.编辑nginx配置文件

vim /etc/nginx/conf.d/upstream.conf

#写入下面内容
#定义负载转发的后端ip
upstream www.douma.com {
  server 192.168.99.131:80;
  server 192.168.99.130:80;
}

#配置主配置信息
server {
  listen 80;
  server_name www.douma.com;
  access_log /var/log/douma-access.log;
  error_log /var/log/douma-error.log debug;
  #set your default location
  location / {
    proxy_pass http://www.douma.com;
  }
}

3.启动nginx

systemctl start nginx


  

配置mariadb

  
1.安装mariadb

#这里直接yum,新版的mariadb要到官网去配置新版的mariadb更新源
yum install mariadb -y
systemctl start mairadb

2.授权账号

MariaDB [(none)]> grant all on wp.* to [email protected]‘192.168.99.%‘ identified by ‘admin‘;

MariaDB [(none)]> flush privileges;

3.建立wordpress数据库

MariaDB [(none)]> create database wp;


  

配置NFS

  
1.安装nfs管理工具,并且启动

# centos7,centos6要先启动rpcbind服务才能启动nfs-server
yum install nfs-utils -y
systemctl start nfs-server

2.编辑配置文件

vim /etc/exports
#写入想要共享的目录和允许挂载的机器和读写权限
/web/wordpress 192.168.99.0/24(rw)

3.创建目录并且放入wordpress站点文件

 mkdir /web
 cd /web
 wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
  tar -xvf wordpress-4.9.4-zh_CN.tar.gz 

4.设置acl权限,要给父附录权限,否则在wordpress在上传文件会失败

#由于httpd是yum安装的,所以uid号相同,所以设置一次就好
setfacl -R -m u:48:rwx /web

5.将nfs目录分享出去

#重读exports文件
exportfs -r
#查看分享出去的目录和权限
exportfs -v

6.编辑wordpress的配置文件

cd wordpress
mv wp-config.sample.php wp-config.php
vim  wp-config.php


  

配置web服务器

  
2台web都按照如下配置
1.安装httpd和php-fmp

yum install httpd php-fpm php-mysql -y
#由于未做分离所以可以直接启动,无需修改,如果分离,要注意修改配置文件允许远程访问和监听全部ip
systemctl start php-fpm

2.配置httpd

#自定义配置文件名字,但是目录和结尾要固定
 vim /etc/httpd/conf.d/php-fpm.conf 

#写入如下字段
#将php也作为默认页
DirectoryIndex index.php
#关闭代理请求
ProxyRequests Off
#设置允许代理的请求,这里未做分离所以直接代理到httpd目录就好
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1

3.安装nfs管理工具

yum install nfs-utils -y
#查看nfs服务器共享的文件夹
showmount -e 192.168.99.135


4.挂载目录

#这里有2中方法
#法一,编译fstabl文件
vim /etc/fstab
192.168.99.135:/web/wordpress /var/www/html/ nfs defaults 0 0

mount -a

#法二,直接命令挂载
mount 192.168.99.135:/web/wordpress /var/www/html/

5.启动httpd

systemctl start httpd

  

配置宿主机

  
由于没有做dns所以要修改宿主机的hosts文件才能实现基于域名的访问

C:\Windows\System32\drivers\etc\hosts

#添入如下字段
192.168.99.150  www.douma.com

  

安装wordpress

  
1.宿主机在浏览器打开www.douma.com
填写好对应信息

2.安装wordpress等待完成

3.重新打开www.douma.com

部署完成。
  

总结

  
整个部署基本是按照问题解决后的配置来进行安装的,所以负载均衡可以正常实现。下面将会列出刚开始错误的点和配置。
  

注意点

  

nginx反向代理的配置

  


上面2幅图分别是正确和错误的配置,不过正常来说2个配置都没问题,但是在这里并不行;错误配置是将请求192.168.99.150的请求转发到后端的2台httpd机器上,但是在这里同时会将http://backend 也转发到后端,而wordpress会在安装过程中记录下这个站点名称,并且之后的请求会直接请求http://backend
  

wordpress数据库的记录

  
1.下面是wordpress记录到数据库的内容
这里我使用了phpmyadmin这个web端的mysql管理工具

图中方框内记录的便是wordpress记录的站点地址,同时也会是以后请求的地址。
2.下面是使用调试窗口看到的请求,正常情况下下次请求会重新去请求记录的站点地址,可以重新通过nginx实现负载均衡。如果请求的站点地址不是域名而是上面nginx错误配置或者是某个web节点的地址的话,负载均衡会完全失效。

原文地址:http://blog.51cto.com/11010461/2132959

时间: 2024-07-31 07:23:16

记一次负载均衡+NFS博客站点搭建的总结的相关文章

LVS负载均衡之二:LVS-NAT搭建web群集

实现LVS的NAT模式 其原理及特点详细介绍请看LVS负载均衡之一:LVS-NAT.LVS-DR模式的原理详细介绍 1.实验环境 IP地址规划 客户端访问服务的请求IP地址:VIP 12.0.0.1 Server IP 系统 Director Server DIP 192.168.10.1 CentOS7 NFS Server 192.168.10.50 RedHat6 Real Server1 RIP 192.168.10.51 CentOS7 Real Server2 RIP 192.168

CentOS中nginx负载均衡和反向代理的搭建

1: 修改centos命令行启动(减少内存占用): vim /etc/inittab id:5:initdefault: --> 修改5为3 若要界面启动使用 startx 2:安装jdk 1)解压:jdk-7u55-linux-i586.tar.gz [[email protected] jdk]# tar -zxvf jdk-7u55-linux-i586.tar.gz 2)复制:[[email protected] jdk]# cp -rf jdk1.7.0_55/ /usr/local/

负载均衡的mariadb集群搭建

集群介绍: Galera是一个MySQL(也支持MariaDB,Percona)的同步多主集群软件,目前只支持InnoDB引擎. 主要功能: 同步复制 真正的multi-master,即所有节点可以同时读写数据库 自动的节点成员控制,失效节点自动被清除 新节点加入数据自动复制 真正的并行复制,行级 用户可以直接连接集群,使用感受上与MySQL完全一致 优势: 因为是多主,所以不存在Slave lag(延迟) 不存在丢失交易的情况 同时具有读和写的扩展能力 更小的客户端延迟 节点间数据是同步的,而

负载均衡(LVS DR模式搭建,DR只用一个公网ip,Keepalived+LVS DR)

一.LVS DR模式搭建 准备工作 三台机器: 分发器,dir:192.168.52.100 rs1:192.168.52.101  (网关改回来,之前nat模式改成100) rs2: 192.168.52.102  (网关改回来,之前nat模式改成100) vip:192.168.52.200   (这个虚拟ip需要绑定在每台机器上) 分发器dir上: [[email protected] ~]# iptables -F [[email protected] ~]# vim /usr/loca

集群之LVS(负载均衡)详解

提高服务器响应能力的方法 scale on  在原有服务器的基础上进行升级或者直接换一台新的性能更高的服务器. scale out  横向扩展,将多台服务器并发向外响应客户端的请求.优点:成本低,扩展架构比较简单. 集群(Cluster),通俗地讲就是按照某种组织方式将几台电脑组织起来完成某种特定任务的这样一种架构. 三种集群类型: LB,Load Balancing 负载均衡:在一定程度上能够实现高可用的目的. HA,High Availability 高可用:实时在线,能够及时响应客户端请求

LVS详解及基于LVS实现web服务器负载均衡

前言 LVS(Linux Virtual Server)Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.通过LVS提供的负载均衡技术和Linux操作系统可实现一个高性能.高可用的服务器群集,从而以低成本实现最优的服务性能. 集群基础 集群简介 集群(Cluster)是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用

Consul+upsync+Nginx实现动态负载均衡 摘自https://blog.csdn.net/qq_29247945/article/details/80787014

传统感念:每次修改完nginx配置文件,要重启nginx 动态感念:每次修改完nginx配置信息,不需要重启,nginx实时读取配置信息. Nginx: 反向代理和负载均衡 Consul:是用go编写(谷歌),实现对动态负载均衡注册与发现功能 SpringCloud支持  Zookeeper.Eureka.Consul服务注册与发现. 服务注册:服务实现者可以通过HTTP API或DNS方式,将服务注册到Consul. 服务发现:服务消费者可以通过HTTP API或DNS方式,从Consul获取

Nginx+Tomcat——配置负载均衡和动静分离(实战!)

Nginx应用 Nginx是一款非常优秀的HTTP服务器软件 支持高达50000个并发连接数的响应 拥有强大的静态资源处理能力 运行稳定 内存.CPU等系统资源消耗非常低 目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力 Nginx负载均衡实现原理 Nginx配置反向代理的主要参数 upstream 服务池名{} 配置后端服务器池,以提供响应数据 proxy_ _pass http://服务池名 配置将访问请求转发给后端服务器池的服务器处理

实践出真知——一文教你搭建Nginx+Tomcat集群,实现负载均衡及动静分离

实践出真知--一文教你搭建Nginx+Tomcat集群,实现负载均衡及动静分离 前言 ? 想必大家对于Nginx和Tomcat都非常熟悉了,Nginx的应用非常广泛,不仅是对web静态资源非常友好,而且也是非常实用的反向代理和负载均衡软件.结合后端Tomcat的服务,从而搭建Nginx+Tomcat集群. ? 对于直接想要实践的朋友而言可以获取本文的链接中的软件包后直接看第三备份的内容. 一.集群搭建结构及拓扑 1.1集群架构图示 Nginx+Tomcat集群的结构示意图如下: 1.2系统环境与