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

news/2024/5/10 11:22:42/文章来源:https://blog.csdn.net/vic_qxz/article/details/80536592

操作环境: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


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_780800.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

psn请验证您不是机器人_机器人模仿人类难?网站验证码是如何区分人类和机器的?...

为了避免注册垃圾用户以及盗取数据(撞库),大多数网站都会用验证码来阻止机器人登陆,虽然验证码让很多用户感到厌烦,但它成功地阻挡了绝大多数机器人,也在保护我们数据的安全。那么验证码是怎么区分人类和机器人(电脑程序)的呢&…

网站Web业务架构从小到大演变

有一天,我突发奇想创建了一个站点,基于 LNMP 架构,起初只有我自己访问,后来因为我点儿正,访问量越来越大,所以最终导致下面的架构演变。 1、单台机器 单台机器因为只是一个小站,访问量一天也没有…

网站时常出现too many connection的错误

安装了一个程序,大访问量测试的时候发现竟然连接不上数据库了,仔细检查发现MySQL数据库出现1040错误,提示“too many connections”。那么改如何解决这个问题呢?其实MySQL默认的最大连接数为100,可能在大访问量的时候造…

什么是域名?什么网站名?什么是URL?

2019独角兽企业重金招聘Python工程师标准>>> 搬运自:https://jingyan.baidu.com/article/2c8c281df0afd00008252aa7.html 转载于:https://my.oschina.net/tanghaoo/blog/3006600

【SEO技巧】用户需求不等于用户真正需求

大家都知道网站要做得好,首先的前提 是要分析 用户需求,只有用户需求分析正确了才能将网站真正的做起来,俗话说的好知己知彼才能百战不殆。 什么是用户需求分析: 用户需求分析是指在系统设计之前和设计、开发过程中对用户需求所作…

Android 学习论坛博客及网站推荐

出处:http://blog.csdn.net/tangcheng_ok/article/details/6909049 一、博客推荐 1)http://blog.csdn.net/android_tutor (Android开发入门基础,高级进阶) 2)http://blog.csdn.net/hellogv (入…

大型网站技术架构(六)网站的伸缩性架构

2019独角兽企业重金招聘Python工程师标准>>> 网站系统的伸缩性架构最重要的技术手段就是使用服务器集群功能,通过不断地向集群中添加服务器来增强整个集群的处理能力。“伸”即网站的规模和服务器的规模总是在不断扩大。 1、网站架构的伸缩性设计 网站的…

小公司如何部署实施Linux集群网站

出处:http://andrewyu.blog.51cto.com/1604432/710049 作者:抚琴煮酒 标签:小企业 Linux集群 小公司原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://…

蚂蚁变大象:浅谈常规网站是如何从小变大的(一)

http://zgwangbo.blog.51cto.com/4977613/849529 标签:架构 web原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zgwangbo.blog.51cto.com/4977613/849529【 前一段时间写了关…

为什么很多网站都去除oracle?

一个字,贵。你可以去Oracle官网看看Oracle的报价,一套Oracle database动辄几十万,或者按年付费,一年大几万,这还是一个CPU的价格。 碰到集群你就等着哭吧。人员培训也是问题。Mysql很多人学数据库的时候多多少少都会用…

大型网站架构演化发展历程

原文:http://www.cnblogs.com/JustOnly/p/4899615.html 前面已经描述了大型网站系统的特点,而对一个大型网站系统,其架构也是重要的一个环节。 大型网站技术主要的挑战来自于庞大的用户、高并发以及海量的数据这三个方面。大型网站的形成就像…

发现了好的网站

今天在查找DNN,以及rainbow的资料时,发现了几个好的网站,并在上边注册;www.dnnskins.com, www.asp.net www.codeproject.com 通过查看,对dnn,rainbow有了新的认识转载于:https://www.cnblogs.com/mengfan/arch…

影响我的网站速度的因素

测试几个主网页总结出影响我的网页速度的几个因素: 一级因素: ①启动压缩 ②浏览器缓存 二级因素: ①提供压缩后的图片 找到原因下面就好办了,对症下药,下面将一个个解决。 解决办法: 开启压缩功能-…

别找了!这5个图片素材网站分享给你,每一个都资源满满!

职场中的工作日常就是找素材,但是需要找到合适的图片素材真的是难上加难。废话就不多说了,今天小编就给大家分享5个图片素材网站,资源真的超级丰富!有需要的小伙伴记得收藏!Pixabay链接:http://pixabay.com…

大型网站架构系列:分布式消息队列

一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境&#xff0…

一个母婴电子商务网站的大数据平台及机器学习实践

母婴相对一般的电子商务网站有一些特点:第一个特点是商品周期短,在母婴网站上的商品,在线的时间不会超过5-7天,第二个是用户需求的变化快,在母婴行业,可能是用户的需求变化最快的领域,比如是用户…

大型网站架构技术一览

网站系统架构层次如下图所示: 1.前端架构 前端指用户请求到达网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容。 浏览器优化技术 并不是优化浏览器,而是通过优化响应页面,加快浏览器页面的加载…

大型网站图片服务器架构的演进

在主流的Web站点中,图片往往是不可或缺的页面元素,尤其在大型网站中,几乎都将面临“海量图片资源”的存储、访问等相关技术问题。在针对图片服务器的架构扩展中,也会历经很多曲折甚至是血泪教训(尤其是早期规划不足&am…

大型网站架构系列:分布式消息队列

以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。 本次分享大纲 消息队列概述消息队列应用场景消息中间件示例JMS消息服务常用消息队列参考(推荐&…

浅谈web网站架构演变过程

前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理 阶段一、单机构建网站 网…