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

操作环境:VMware Fusion

操作系统:Centos6

实验架构设计图及实现:

基于Nginx的负载均衡网站架构_第1张图片

实验说明:

  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)

基于Nginx的负载均衡网站架构_第2张图片

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

基于Nginx的负载均衡网站架构_第3张图片

Web2:192.168.56.3/24

基于Nginx的负载均衡网站架构_第4张图片

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

基于Nginx的负载均衡网站架构_第5张图片
基于Nginx的负载均衡网站架构_第6张图片
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服务器下载并推送过去

基于Nginx的负载均衡网站架构_第7张图片

启动httpd服务

基于Nginx的负载均衡网站架构_第8张图片

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

基于Nginx的负载均衡网站架构_第9张图片
保存退出,重载服务 reload
PS:一般在实际运用中一般都是重载服务而不是重启服务

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

基于Nginx的负载均衡网站架构_第10张图片

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

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

基于Nginx的负载均衡网站架构_第11张图片

启动mysql服务:

基于Nginx的负载均衡网站架构_第12张图片

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

基于Nginx的负载均衡网站架构_第13张图片

把mysql数据库转移一下

基于Nginx的负载均衡网站架构_第14张图片

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

基于Nginx的负载均衡网站架构_第15张图片

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

基于Nginx的负载均衡网站架构_第16张图片

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

基于Nginx的负载均衡网站架构_第17张图片
基于Nginx的负载均衡网站架构_第18张图片
基于Nginx的负载均衡网站架构_第19张图片

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

基于Nginx的负载均衡网站架构_第20张图片

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

基于Nginx的负载均衡网站架构_第21张图片

eth1:192.168.56.1/24

基于Nginx的负载均衡网站架构_第22张图片

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

基于Nginx的负载均衡网站架构_第23张图片
基于Nginx的负载均衡网站架构_第24张图片

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

基于Nginx的负载均衡网站架构_第25张图片

基于Nginx的负载均衡网站架构_第26张图片

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

基于Nginx的负载均衡网站架构_第27张图片

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

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

基于Nginx的负载均衡网站架构_第28张图片

(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
基于Nginx的负载均衡网站架构_第29张图片

make && make install

基于Nginx的负载均衡网站架构_第30张图片

(5) 创建所需要的目录

基于Nginx的负载均衡网站架构_第31张图片

这里写图片描述

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

这里写图片描述

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

基于Nginx的负载均衡网站架构_第32张图片

然后在server中添加如下内容

基于Nginx的负载均衡网站架构_第33张图片

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

这里写图片描述

在wordpress中把URL指向Nginx Server中

基于Nginx的负载均衡网站架构_第34张图片

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

基于Nginx的负载均衡网站架构_第35张图片

基于Nginx的负载均衡网站架构_第36张图片

基于Nginx的负载均衡网站架构_第37张图片


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

基于Nginx的负载均衡网站架构_第38张图片


END!

你可能感兴趣的:(Linux)