基于Linuxnginx反向代理服务器的应用研究毕业论文Word文档下载推荐.docx

上传人:b****5 文档编号:21595876 上传时间:2023-01-31 格式:DOCX 页数:38 大小:1.67MB
下载 相关 举报
基于Linuxnginx反向代理服务器的应用研究毕业论文Word文档下载推荐.docx_第1页
第1页 / 共38页
基于Linuxnginx反向代理服务器的应用研究毕业论文Word文档下载推荐.docx_第2页
第2页 / 共38页
基于Linuxnginx反向代理服务器的应用研究毕业论文Word文档下载推荐.docx_第3页
第3页 / 共38页
基于Linuxnginx反向代理服务器的应用研究毕业论文Word文档下载推荐.docx_第4页
第4页 / 共38页
基于Linuxnginx反向代理服务器的应用研究毕业论文Word文档下载推荐.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

基于Linuxnginx反向代理服务器的应用研究毕业论文Word文档下载推荐.docx

《基于Linuxnginx反向代理服务器的应用研究毕业论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于Linuxnginx反向代理服务器的应用研究毕业论文Word文档下载推荐.docx(38页珍藏版)》请在冰豆网上搜索。

基于Linuxnginx反向代理服务器的应用研究毕业论文Word文档下载推荐.docx

2.6.2MySQL4

2.6.3phpMyAdmin4

2.6.4FileZilla4

2.6.5ApacheBench4

3系统的需求分析、可行性分析和总体设计5

3.1需求分析5

3.2可行性分析5

3.2.1技术实现可行性分析6

3.2.2经济可行性分析6

3.3系统总体设计6

3.3.1负载均衡系统的拓扑图7

3.3.2负载均衡系统的层次结构图8

4系统详细设计9

4.1nginx反向代理服务器设计部署9

4.1.1系统总体环境的说明9

4.1.2Ubuntu的安装和配置9

4.1.3nginx的编译安装、启动和关闭10

4.2Apache的设计部署11

4.2.1XAMPP的安装11

4.2.2Apache的启动和配置12

4.3MySQL的安装和配置14

4.4Discuz!

X的安装18

4.5nginx的详细配置21

4.5.1常规选项的设置21

4.5.2http模块配置22

4.5.3upstream子模块23

4.5.4server子模块23

4.5.5静态数据缓存的设计实现24

4.6远程FTP附件的安装和配置25

4.6.1安装FTP服务器25

4.6.2设置Discuz!

X远程附件28

5测试31

5.1测试31

5.1.1压力测试31

5.1.2实时测试34

总结35

参考文献37

答谢38

绪论

课题研究的背景

随着Web2.0时代的到来,互联网上的信息已不再是企业或个人的商业行为,而是所有互联网的用户通过求知的力量彼此协作的产物,所有的用户既是信息的提供者又是信息的获取者。

信息的爆炸式的发展,使得互联网上的知识更加的丰富多彩,同时为所有用户节约了很多处理已有问题的时间。

并且社交类网站的兴起,促进了人们的交流,也充分说明了用户交互是未来网络发展的必然趋势。

但这种方式的出现给Web的服务器提供商提出了新的挑战。

出现了例如:

如何能够应对高并发的访问量,如何能够实时的响应请求,如何能够有效的利用服务器资源等问题。

各大IT公司纷纷提供了自己的解决方案。

课题研究的意义

随着网络用户的不断增加,Web服务器的负载压力越来越大,通过分布式服务器的模式可以实现Web服务分离,并且可以由多个服务器提供一项负载压力特别大的服务,从而解决压力过大的问题,而且这种模式的扩展性和灵活性很强,可以在以后随着业务的增加或减少进行可伸缩的改变。

同时,数据的安全性也得到了提高,通过双备份和高可用技术,可以实现数据的多重备份和实时替换,使得整个系统不会因为一台设备的故障而影响全局。

大大提高了系统的稳定性和安全性。

2系统实现的原理

2.1基于Web的分布式系统

Web[1]的客户-服务器模式要解决的关键问题就是负载过大问题,Web分布式系统[2]可以解决这个问题。

一个比较实用的方法就是:

把Web服务器复制成为一个Web服务器集群,使用一个统一的前端(如nginx)把客户端的请求均衡的分配给后端Web服务器集群。

2.2UbuntuServer10.04.2LTS

Ubuntu[3]是基于Debian的Linux发行版,该项目起始于2004年,它虽然很年轻,却在短短的几年间,变成了Linux发行版中用户量最多的一位。

Ubuntu的运行和维护依赖于MarkShuttleworth创建的Canonical公司,当然也离不开广大Linux爱好者的支持。

本论文采用的是UbuntuServer10.04.2LTS版,其中10.04.2意思是首次发布于2010年4月的第二个维护版本,LTS表示将提供长达5年的安全和更新支持。

2.3nginx

nginx[4]是由俄罗斯人IgorSysoev编写的一款高性能的反向代理和Web服务器软件。

在Linux(2.6内核)、FreeBSD和Solaris10中分别可以使用epoll、kqueue和eventport作为网络I/O模型。

它具有高并发连接的特点,官方称其可以达到50000个,但是即便这样,它在CPU、内存占用方面却是非常的低,而且其稳定性也相当的好。

5月初nginx[5]发布了1.0.0版本,这意味着历时达9年之久的nginx开发已经正式迈入了新的阶段。

本次论文设计采用的是最新稳定版1.0.2。

2.4反向代理

反向代理是相对于正向代理来说的。

正向代理就是PC机连接Internet时要通过代理服务器,PC机把Web请求发送给代理服务器,由代理服务器连接Internet。

而反向代理服务器则恰恰相反,反向代理服务器代理的对象是后端服务器,由前端代理服务器接受Internet请求,并将这些请求转发给后端服务器。

同时把后端服务器的结果返回给PC端。

对于外部网络来说,反向代理服务器和它代理的服务器表现为一个服务器。

2.5Discuz!

X

Discuz!

X[6]是康盛公司(Comsenz)推出的一个以社区为基础的专业建站平台,让论坛(BBS)、社交网络(SNS)、门户(Portal)、群组(Group)、开放平台(OpenPlatform)应用充分融合于一体,帮助网站实现一站式服务。

本论文采用的是1.5UTF-8版本。

这款产品本身是免费的,收费的是它的服务。

借鉴这种模式,它已经发展成为国内同类产品中的第一品牌。

2.6XAMPP

XAMPP是由Apachefriends网站开发的,其中X表示其支持Linux、Windows、MacOSX、Solaris等多种平台。

它提供了一个良好的开发环境,主要是用于网站开发者测试使用,但同样可以用于实际的生产环境,但要根据实际情况关闭不需要的功能模块,并进行相应的安全设置。

它默认包含了很多服务器组件,在本论文中的所有后端服务器均用此软件部署。

2.6.1Apache

Apache[7]服务器是一种开放源代码的HTTP服务器,支持多种操作系统平台,目前是最流行的WWW服务器软件之一。

它是相当优秀和经典的Web服务器,本次设计中需要开启对PHP的支持。

2.6.2MySQL

MySQL[7]是一个开源的小型关系型数据库软件,具有多平台支持和移植性强的特点,同时拥有良好的性能。

2.6.3phpMyAdmin

用PHP开发的MySQLWeb管理软件,几乎囊括了MySQL所有的功能实现。

使用十分方便,只要登录页面就可操作,即便没有接触过数据库的人也可是使用。

2.6.4FileZilla

FileZilla是一款优秀的FTP服务器,它性能优异、配置简单,而且功能相比于其他FTP服务器一点也不逊色。

2.6.5ApacheBench

ApacheBench是Apache服务器的一款执行效率测试软件。

可以针对一个URL模拟出连续的连接请求,通过在命令行中赋予不同的选项和值,可以仿真不同压力的访问请求,这样就可以根据其反馈结果和服务器端的表现来进行适当的配置调整。

3系统的需求分析、可行性分析和总体设计

3.1需求分析

本设计搭建的平台是Discuz!

X,主要是为其提供运行的环境,并在各方面进行优化。

重点需要实现以下几个方面:

反向代理和负载均衡:

通过前端服务器代理后端服务器集群,实现负载的均衡分配。

静态数据缓存:

在网络数据传输的过程中,网站的静态数据可以通过定期缓存到前端代理服务器的方式大大的减少前端服务器与后端服务器的数据通信流量。

会话保持:

用户输入自己的账户和密码后登陆,其实是定位到了服务器集群中的某一台。

如果用户刷新,遵照负载均衡的轮询规则,用户就被指引到了另外一台服务器,需要重新登陆。

这样不仅用户麻烦,而且会无形中加大服务器的负担,所以要把一个用户定位到一个服务器上不变。

Web和数据库的分离:

随着数据的增加,需要把数据库和Web分离出来,由独立的一台服务器提供数据库服务,从而提高整个集群系统的性能。

Web和静态附件的分离:

由于静态附件的体积较大和文件繁多,使得附件的传输和管理成为Web服务器高速运行的瓶颈。

如果把静态附件分离出来,不仅可以大大减轻Web压力,还能提高附件上行和下行的效率。

3.2可行性分析

针对需求分析,进行以下可行性分析。

3.2.1技术实现可行性分析

通过nginx的http模块的反向代理和负载均衡功能解决相应的问题,启用ip_hash实现会话保持。

对于静态数据缓存可在nginx的server模块中加入相应的缓存设置。

通过分别部署Discuz!

XWeb服务器,并设置其连接远程数据库服务器实现Web和数据库分离。

通过启用Discuz!

X的远程附件功能,并搭建FTP服务器实现静态附件分离。

3.2.2经济可行性分析

本论文设计全部采用开放源代码的免费软件,不仅节约了成本,而且可以很好的利用开源软件的二次开发特性,在实际生产部署中,可以根据需要加入自己编写的功能模块。

3.3系统总体设计

总体设计主要从网络拓扑图、层次结构图两个方面来介绍。

3.3.1负载均衡系统的拓扑图

图1拓扑图

如图1所示,服务器集群系统分为3台Web服务器,1台FTP服务器,1台数据库服务器和它们的nginx前端反向代理服务器。

测试机使用3台,是为了具体实施时进行实时性测试。

其中3台Web是负载均衡实现的主要对象,也是Discuz!

X网站部署的服务器。

采用2台交换机是为了把集群系统和测试机物理上分开,使两个网络的数据通信集中在两个交换机的连接线上,仿真不同网络的访问(在详细设计中会提到)。

3.3.2负载均衡系统的层次结构图

nginx

图2层次结构图

图2为整个系统的层次结构图[2]。

用户发送请求经过了三个层次结构,反向代理层会根据用户的请求以轮询的形式把请求转发给Web应用层,Web应用层再根据请求的具体内容去访问文件层和数据层。

4系统详细设计

4.1nginx反向代理服务器设计部署

4.1.1系统总体环境的说明

广域网模拟的必要性:

要模拟广域网环境就需要加入DNS服务和路由器,来实现在不同网络之间的互联和模拟域名的解析。

但是其实还是没能真实的体现广域网多网络和众多用户的特点,所以没有采用上述方法模拟广域网环境。

在本系统中,nginx要求主机有一个域名,所以在测试客户端的系统hosts文件中加入如下代码,实现域名解析。

192.168.56.100www.discuz.cc

该系统中所有的计算机全部采用相同配置的联想台式机。

大体配置如下:

CPU:

IntelPentium(R)Dual-CoreE53002.60GHz

内存:

2GB硬盘:

250GB

操作系统平台:

除了反向代理服务器采用Ubuntu10.04.2LTS外,其他的一律为WindowsXpProfessionalSP2。

4.1.2Ubuntu的安装和配置

Ubuntu的安装过程和其他Linux发行版的安装过程差不多,甚至还要更简单。

文件系统采用最经典的分法:

根文件系统/,swap交换区(1.5倍于内存大小)。

安装完成后,配置/etc/apt/sources.list软件源,以备下一步安装库文件。

静态ip的配置/etc/network/interfaces,屏蔽#ifaceeth0inetdhcp,添加

address192.168.56.100

netmask255.255.255.0

gateway192.168.56.1

4.1.3nginx的编译安装、启动和关闭

5月初nginx[4]发布了1.0.0版本,这意味着nginx已经正式迈入了新的阶段,此间历时达9年之久,本次编译采用最新稳定版1.0.2,从官方下载源代码nginx-1.0.2.tar.gz。

编译安装过程如下:

//更新到最新的软件列表文件

#apt-getupdate

//创建nginx专用组和用户

#groupaddwww-data-g33

#useradd-u33www-datawww-data

#chown-Rwww-data:

www-data/var/www

//安装依赖库

#apt-getinstalllibpcre3libpcre3-devlibpcrecppolibssl-devzlib1g-dev

//编译安装

#tar-zxvfnginx-1.0.2.tar.gz/

#cdnginx-1.0.2/

#./configure--with-http_ssl_module\#开启对HTTPS的支持

--with-http_stub_status_module\#开启nginx运行状态查看支持

---with-gzip_static_module\#开启对gzip的支持

#make

#makeinstall

nginx启动进程。

//启动

#cd/usr/local/nginx/sbin

#./nginx

从测试机访问http:

//192.168.56.100,如果出现welcometonginx,则说明安装正常。

nginx结束进程。

//结束

#ps-aux|grepnginx

//结果中有www-data用户的两个进程,记录进程号

#kill进程号

4.2Apache的设计部署

4.2.1XAMPP的安装

XAMPP[8]的安装和普通软件的安装一样,安装过程中有一个安装选项需要注意,如图3所示,需要选择是否安装为系统服务。

图3选择是否安装为服务

4.2.2Apache的启动和配置

Apache的安装不需要添加为服务,启动XAMPPControlPanel,startApache效果如图4所示。

图4Apache启动

点击Admin,首页的启动效果如图5所示。

图5XAMPP启动首页

点击安全选项,会看到系统提示:

未进行安全设置,通过提示URL,可以进行设置,如图6所示。

图6XAMPP安全提示

如图7所示,提示为XAMPP目录设置密码,防止外部网络的非法访问。

图7XAMPP目录保护

输入用户名和密码:

baiboer,baiboer。

重新刷新出现如下窗口,要求输入用户名和密码,如图8所示。

图8XAMPP登录窗口

4.3MySQL的安装和配置

MySQL的管理要启用phpMyAdmin,同时要启用本地Apache服务器,所以安装完成后,启动面板,要同时启动Apache和MySQL,如图9所示。

图9MySQL启动

点击admin,进入首页,同Apache一样,点击安全设置,按照向导给MySQL的root用户设置密码baiboer。

如图10所示。

图10设置root密码

刷新页面出现如图11的界面,要求输入账号和密码。

图11登录phpMyAdmin

输入root作为用户名,输入密码baiboer,进入phpMyAdmin首页以后,选择权限标签,点击添加用户,出现如图12的界面。

图12添加新用户

分别建立三个用户给Web服务器,用于对数据库的访问,用户数据库选择“无”,在全局权限中,勾选所有复选框,点击执行。

三组用户设置如表1所示:

表1用户设置详情

用户名

密码

主机(即该用户登录ip)

discuz

baiboer

192.168.56.102

discuzs

Baiboer123

192.168.56.103

discuzss

Baiboer123s

192.168.56.105

由于MySQL默认的远程连接采用的是域名连接,要使用ip连接,需要在MySQL的配置文件~(~代表XAMPP的安装目录)\mysql\bin\my.ini的[mysql]部分添加skip-name-resolve选项。

默认安装完成后会看到提示两个错误,如图13,14所示。

图13链接表

图14连接失败

出现图13错误,是因为没开启tracking功能(用于记录SQL执行),在~\phpMyAdmin\config.inc.php中加入$cfg['

Servers'

][$i]['

tracking'

]='

pma_tracking'

但是phpMyAdmin的数据库即pma中并没有对应的表,所以需要使用phpMyAdmin的数据库导入功能重新导入~\phpMyAdmin\scripts下的create_tables.sql。

出现图14错误是因为上述配置文件config.inc.php中未加入root用户的权限,添加以下代码:

$cfg['

controluser'

root'

;

controlpass'

baiboer'

4.4Discuz!

X的安装

在XAMPP的Apache中添加虚拟主机,XAMPP会自动把默认目录更改为该虚拟主机的目录。

在各Apache服务器配置文件~\apache\conf\extra\httpd-vhosts.conf中添加以下代码:

<

VirtualHost*:

80>

ServerAdminbaiboer123@

DocumentRoot"

~/htdocs/discuz"

ServerNamediscuz.cc

ServerAliaswww.discuz.cc

ErrorLog"

logs/discuz-error.log"

CustomLog"

logs/discuz-access.log"

combined

/VirtualHost>

拷贝Discuz!

X的网站代码目录upload到htdocs目录下,并重命名为discuz,在浏览器中输入http:

//localhost/出现如图15所示的安装许可界面,图16所示的安装环境检测,图17所示的UCenterServer(Discuz!

X的运行底层支持)的安装方式。

图15安装许可

图16安装环境检测

图17设置运行环境

图18安装数据库

如图18所示,数据库安装的基本配置,3台Apache服务器的配置基本相同,第一台输入用户名、密码正常安装,后两台输入其对用的用户名、密码,如表1所示。

因为第一次安装数据库,对应的数据库名和表已存在,后两次都是覆盖安装,会出现如图19所示的复选框选项,其他同图18,勾选即可实现覆盖安装,之后即可安装完成。

图19强制安装

4.5nginx的详细配置

编译安装[4]的过程中并没有选择其安装目录,其默认目录为/usr/local/nignx,配置文件为默认目录下的conf/nginx.conf。

4.5.1常规选项的设置

//指定nginx的用户和组。

userwww-datawww-data;

//运行时的进程数,一般是CPU的核数的一倍或两倍。

worker_processes2;

//发生错误的日志存放地址,默认为安装目录下的logs。

error_loglog

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1