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

news/2024/5/20 16:59:10/文章来源:https://rensongqi.blog.csdn.net/article/details/78115247

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

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

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

相关文章

【原创】Javaweb篮球俱乐部网站(Web网站毕业设计)

JavaWeb技术开发,后端采用JspServlet。前端使用的是Bootstrap的一个网站模板。通过3种角色使用,实现了包括了球员信息管理、球队信息管理、赛事信息发布、赛事订阅等多个不同的模块。 项目类型:JavaWeb源码 用户类型:3个角色(管理…

【原创】基于Web的学习资料共享网(JavaWeb学习资料网站)

项目介绍:通过2种角色使用,实现了包括了学习资料发布、学习资料下载、搜索学习资料、用户管理等多个不同的模块。Javaweb后端采用JspServlet。前端使用的是Layui的一个网站模板。 项目类型:JavaWeb源码 用户类型:2个角色(管理员用…

1.网站数据库交互sql注入

开学了学习时间少非常了,虽然是职高但不是计算机专业 sql注入打基础,之前都学习的sql注入原理,没有学习sql语句感觉有点迷糊,就直接拿别人的语句自己进行找网站漏洞,或者用sqlmp直接去扫,感觉很麻木不知道…

mysql如何导入网站数据_mysql怎么把数据导入进去

mysql把数据导入的方法&#xff1a;1、使用“mysql -u用户名 -p密码 < sql文件”语句导入数据&#xff1b;2、使用“source sql文件的路径”语句导入数据&#xff1b;3、使用mysqlimport导入数据。1、mysql 命令导入使用 mysql 命令导入语法格式为&#xff1a;mysql -u用户名…

为什么使用getrequestdispatcher跳转出现404_网站优化之网站为什么要做301定向跳转?...

网站在进行优化的过程中&#xff0c;有一个重要的网站检查因素就是301定向跳转&#xff0c;为什么要做301定向跳转呢&#xff1f;301定向跳转是用户或搜索引擎对浏览器发出请求时&#xff0c;网站服务器返回HTTP数据流中头信息中的一种状态码&#xff0c;表示本网页自动的转移到…

IOS学习收集的相关网站

2019独角兽企业重金招聘Python工程师标准>>> 1&#xff0c;CocoaChina&#xff1a;http://www.cocoachina.com/ 2&#xff0c;Code4App&#xff1a;http://code4app.com/ 3&#xff0c;梦维&#xff1a;http://www.dreamingwish.com/ 4&#xff0c;open开源文档&a…

脚本启动显示查询频繁被服务器防御_WEB网站防御DDoS攻击的六种方法

DDoS攻击是一种常见攻击&#xff0c;可确实是个困扰运维人员最为恼火的问题&#xff0c;可导致网站宕机、服务器崩溃、内容被篡改甚至品牌/财产严重受损。其实防御DDoS攻击除了运维人员日常的一些防范意识及操作外&#xff0c;IDC服务商提供的付费增值服务是最好的选择&#xf…

大型网站

2019独角兽企业重金招聘Python工程师标准>>> 模块 DB CACHE 分布式文件系统 非可靠通知服务 搜索 名词 java中间件 : 消息中间件&#xff1a;Notify、MetaQ 服务框架 负载中心 中间件 大型系统 转载于:https://my.oschina.net/u/1380237/blog/282582

如何搭建一个属于自己的博客/企业网站?

本文首发于 Guanngxu 的个人博客&#xff1a;如何搭建一个属于自己的博客/企业网站 本文参考内容&#xff1a; 如何做博客/企业站以及注意事项 Typecho支持Emoji表情方法 说明&#xff1a;此篇文章得益于王红星的指导&#xff0c;喜欢直接粗暴一点的朋友可以跳过前面&#xff0…

php威客网,最新带支付宝支付接口的PHP威客任务网站完整版源码破_界面漂亮整洁...

源码介绍这是一款基于PHPMYSQL技术构架的威客系统 &#xff0c;多年实践和对威客模式商业化运作的大量调查分析而精心策划研发&#xff0c;是您轻松搭建威客网站的首选利器。该系统针对威客任务模型进行了细致的分析&#xff0c;提供完善威客任务流程控制解决方案&#xff0c;并…

云服务器上的网站不能访问权限,【权限777】云服务器网站访问提示Internal Server Error...

最近收到久云大使主机用户的故障申告&#xff0c;访问网站提示“Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request”如下图&#xff1a;上面的错误提示的意思是&#xff1a;访问遇到一个服务器内…

访问Ice-Pick Lodge:假设公众筹款网站Kickstarter在成功

Xsolla非常高兴採訪了来自莫斯科的工作室 Ice-Pick Lodge 的Golubeva。数天前&#xff0c;该公司已成功在Kickstarter上募集资金&#xff0c;创造出最知名的游戏“Pathologic” 。这是一个巨大而复杂的工程&#xff0c;预算远远超过25万美元。亚历山大告诉了我们用于翻拍的技术…

python render_python:使用漏斗图展示的网站客户转化率(pyecharts)

大家好&#xff01;今天来分享一下如何用Python工具来帮助我们制作成一张漏斗图。漏斗图适用于业务流程比较规范、周期长、环节多的流程分析&#xff0c;通过漏斗各环节业务数据的比较&#xff0c;能够直观地发现和说明问题所在。在网站分析中&#xff0c;通常用于转化率比较&a…

python html转图片_熬了一夜!我用Python做了一个网站,帮小姐姐生成漫画头像

对于动漫&#xff0c;大家一定都不陌生&#xff0c;小编周围的不少单身码农都是动漫迷。小编也是一个资深动漫迷&#xff0c;动漫里面有好多漂亮的小姐姐&#xff0c;比如斗破苍穹的美杜莎&#xff0c;云韵&#xff0c;萧薰儿&#xff0c;天行九歌里面紫女&#xff0c;焰灵姬。…

HttpWebRequest自动登录网站并获取网站内容(不包含验证码的网站)

可以使用 Visual Sniffer&#xff08;百度搜索&#xff09; 来捕捉提交的数据信息&#xff1a;1. 访问你需要站外提交的页面&#xff0c;比如 CSDN 登陆页 http://www.csdn.net/member/UserLogin.aspx2. 填写好需要的资料&#xff0c;比如用户名和密码&#xff0c;3. 打开 Visu…

网站安全堪忧,挂马、SQL注入,解决之道何在?

WEB应用的发展&#xff0c;使网站产生越来越重要的作用&#xff0c;而越来越多的网站在此过程中也因为存在安全隐患而遭受到各种攻击&#xff0c;例如网页被挂马、网站SQL注入&#xff0c;导致网页被篡改、网站被查封&#xff0c;甚至被利用成为传播木马给浏览网站用户的一个载…

网站缓存技术(Redis、Memcached、Ehcache)

Redis 是什么&#xff1f; 通常而言目前的数据库分类有几种&#xff0c;包括 SQL/NSQL,&#xff0c;关系数据库&#xff0c;键值数据库等等等. 分类的标准也不一&#xff0c;Redis本质上也是一种键值数据库的&#xff0c;但它在保持键值数据库简单快捷特点的同时&#xff0…

安装java的网站_安装java

windows中jdk安装&#xff1a;2.下载JDK后的安装根据提示进行&#xff0c;还有安装JDK的时候也会安装JRE&#xff0c;一并安装就可以了。安装JDK&#xff0c;安装过程中可以自定义安装目录等信息&#xff0c;例如我们选择安装目录为 C:\Program Files\Java\jdk1.8.0_91。3.配置…

网站商标注册选择保护类别

2019独角兽企业重金招聘Python工程师标准>>> 35类不足以保护您的商标。42类&#xff1a; 替他人创建和&#xff0c;托管网站&#xff0c;提供互联网搜索引擎&#xff0c;网络服务器出租&#xff0c;等服务&#xff0c; 如果您是做网站托管&#xff0c;或者提供服务器…

产品设计 【网站转化率与漏斗模型】

一、用户行为 用户行为数据可以理解为用户在 app 内进行操作时被服务器记录下来的使用行为数据。通过对用户行为数据进行分析&#xff0c;可以帮助运营人员更加详细、清楚地了解用户的行为特征&#xff0c;从而找出造成用户流失的原因&#xff0c;为运营人员进行针对性运营提供…