基于Nginx的负载均衡网站架构

操作环境:VMware Fusion

操作系统:Centos6

实验架构设计图及实现:

这里写图片描述

实验说明:

  1. Nginx服务器作为Web前端,当接收到用户的Web访问请求时,将请求转发 给内部真正的WEB服务器。
  2. Nginx具有两个网卡,一个网卡与Internet连接,一个网卡与内网相连 (能够访问内网真正的WEB服务器)。
  3. WEB服务器采用Apache+PHP 技术,能够与Nginx的内部网卡和MySQL数据 库服务器通信。
  4. MySQL数据库服务器用于保存网站数据

实验要求:

1.基于VMware Fusion构建拓扑图(也可使用virtualbox)。图中的 IP地址仅为参考,可以自行选择IP段。 
2.操作系统使用CentOS 6 64位。Web服务器和MySQL数据库服务器的相关 软件Apache、PHP、MySQL可以使用CentOS软件仓库通过网络安装。Nginx需 要自行从官方网站下载源码安装。 
3.在Nginx服务器对Nginx进行负载均衡配置。要求解决session问题(请采 用ip_hash方式)。 
4.在两台WEB服务器上配置好Apache+PHP运行环境。在两台服务器上安装同 一款PHP开源程序(例如:Discuz,phpmyadmin,wordpress),数据使用 拓扑图中的MySQL服务器。 
5.在MySQL服务器上对MySQL进行安装和配置,确保WEB服务器能够正常使用 将数据保存到MySQL数据库服务器上。 
6.在Nginx服务器上启用iptables防火墙,对外部网卡仅开放TCP的80和22端 口,其他端口禁止访问,内部网开不做限制。

实验步骤: 
一、首先需要先创建4个虚拟机,其中3个虚拟机当内网Server(两个Web Server,一个Mysql Server);一个Nginx Server(有两个网卡,eth0网卡与内网在同一网段,eth1网卡与外网Client在同一网段中);本机(或再创建一个虚拟机当Client)当Client(用来访问Web)

这里写图片描述

二、对内网每台Web Server的配置 
1、Web1,Web2分别安装Apache、PHP服务,设置仅主机模式,然后配置IP: 
Web1:192.168.56.2/24

这里写图片描述

Web2:192.168.56.3/24

这里写图片描述

并把Web1和Web Server的iptables和SELinux都关掉

这里写图片描述
这里写图片描述
Web2同上

2、并在每台Web Server上安装同一款PHP开源程序Wordpress,在连接数据库的时候设置IP为MySQL Server的IP地址。

这里写图片描述
这里写图片描述

(1)首先先从互联网上获取wordpress压缩包,而后解压缩,并把解压后的目录几文件全部移动到/var/www/html/目录下。 
wget https://cn.wordpress.org/wordpress-4.7.4-zh_CN.tar.gz 
由于设置了仅主机,故我从Nginx服务器下载并推送过去

这里写图片描述

启动httpd服务

这里写图片描述

(2)修该配置文件,DocumentRoot和Direstory为以下内容

这里写图片描述
保存退出,重载服务 reload 
PS:一般在实际运用中一般都是重载服务而不是重启服务

(3)cd 到/var/www/html/wordpress/目录下,然后把wp-config-sample.php拷贝一份,并命名为wp-config.php.而后修改此文件内容如下

这里写图片描述

(4)、在MySQL Server上安装Mysql服务,并设置IP为192.168.56.4/24在数据库中添加一个用户,作为Web1和Web2的用户。

这里写图片描述 
这里写图片描述

这里写图片描述

启动mysql服务:

这里写图片描述

创建rsq2用户,并授予所有权限:

这里写图片描述

把mysql数据库转移一下

这里写图片描述

(5)在Web1上测试与MySQL Server 的连通性

这里写图片描述

(6)Web2上的操作同Web1,并修改wordpress中的wp-config.php文件,把数据库指向MySQL Server中,其他和Web1中一样。

这里写图片描述

3、安装Wordpress的步骤一样 
两个Web为了以示区别,设置两个不同的站点标题 
下面只演示Web2的安装: 
站点标题:RSQ2的个人站点 
用户名:rsq2 
密码:123456 
由于Web1的数据库和Web2共用同一个数据库,故直接导向Web2的页面

这里写图片描述
这里写图片描述
这里写图片描述

三、对Nginx的操作配置 
1、添加一块网卡,并把此网卡的模式也改为仅主机

这里写图片描述

2、配置网卡IP地址 
eth0:10.33.16.160/16

这里写图片描述

eth1:192.168.56.1/24

这里写图片描述

3、打开核心转发功能,并在外网Client上添加网关,以便外网能ping通内网。

这里写图片描述
这里写图片描述

4、打开防火墙,设置iptables防火墙,对外部网卡仅开放TCP的80和22端口,其他端口禁止访问,内部网关不做限制。

这里写图片描述

这里写图片描述

5、编译安装Nginx 
(1)、先去官网下载源码压缩文件,而后解压,这里下载的版本是1.10.0 
wget http://nginx.org/download/nginx-1.10.0.tar.gz

这里写图片描述

(2)、yum install pcre-devel 会用到这个包,否则在编译的时候可能会报错

(3)、添加nginx用户:groupadd nginx 
useradd -g nginx -r nginx 
id nginx

这里写图片描述

(4)源码编译安装:

./configure–prefix=/usr/local/nginx 
–conf-path=/etc/nginx/nginx.conf 
–user=nginx 
–group=nginx 
–error-log-path=/var/log/nginx/error.log 
–http-log-path=/var/log/nginx/access.log 
–pid-path=/var/run/nginx/nginx.pid 
–lock-path=/var/lock/nginx.lock 
–with-http_ssl_module 
–with-http_stub_status_module 
–with-http_gzip_static_module 
–with-http_flv_module 
–with-http_mp4_module 
–http-client-body-temp-path=/var/tmp/nginx/client 
–http-proxy-temp-path=/var/tmp/nginx/proxy 
–http-fastcgi-temp-path=/var/tmp/nginx/fastcgi 
这里写图片描述

make && make install

这里写图片描述

(5) 创建所需要的目录

这里写图片描述

这里写图片描述

(6)启动Nginx服务 
/usr/local/nginx/sbin/nginx

这里写图片描述

(7)修改Nginx配置文件/etc/nginx/nginx.conf 
在server 外添加如下内容

这里写图片描述

然后在server中添加如下内容

这里写图片描述

重载Nginx服务 
/usr/local/nginx/sbin/nginx -s reload

这里写图片描述

在wordpress中把URL指向Nginx Server中

这里写图片描述

基本上到这已经结束了,下面就测试访问:

这里写图片描述

这里写图片描述

这里写图片描述


测试成功,外网Client访问Nginx的外网网卡,可以由Nginx代理,然后访问内网的两个Web。 
后期也可以做个集群,实现轮询访问,若是服务器性能不同,还可以加权访问;也可以对其进行各种优化而使服务性能最优,这里就不多写了!

这里写图片描述


END!


转载至https://blog.csdn.net/mr_rsq/article/details/78115247


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值