基于linux_nginx_反向代理服务器的应用研究_毕业论文(编辑修改稿)内容摘要:
月的第二个维护版本, LTS表示将提供长达 5 年的安全和更新支持。 nginx nginx[4]是由俄罗斯人 Igor Sysoev 编写的一款高 性能的反向代理和 Web服务器软件。 在 Linux( 内核 ) 、 FreeBSD 和 Solaris 10 中分别可以使用epoll、 kqueue 和 eventport 作为网络 I/O 模型。 它具有高并发连接的特点,官方称其可以达到 50000 个,但是即便这样,它在 CPU、内存占用方面却是非常的低,而且其稳定性也相当的好。 5 月初 nginx[5]发布了 版本,这意味着历时达 9 年之久 的 nginx 开 3 发 已经正式迈入了新的阶段。 本次 论文设计 采用 的是 最新稳定版。 反向代理 反向代理是相对于正向代理来说的。 正向代理就是 PC 机连接 Inter时要通过 代理服务器, PC 机把 Web 请求发送给代理服务器,由代理服务器连接 Inter。 而反向代理服务器则恰恰相反,反向代理服务器代理的对象是 后端服务器,由前端代理服务器接受 Inter 请求,并将这些请求转发 给后端服务器。 同时把后端服务器的结果返回给 PC 端。 对于外部网络来说,反向代理服务器 和它代理的服务器 表现为一个服务器。 Discuz! X Discuz! X [6]是康盛公司( Comsenz)推出的一个以社区为基础的专业建站平台,让论坛( BBS)、社交网络( SNS)、门户 ( Portal)、群组( Group)、开放平台( Open Platform)应用充分融合于一体,帮助网站实现一站式服务。 本论文采用的是 UTF8 版本。 这款产品本身是免费的,收费的是它的服务。 借鉴这种模式,它已经发展成为国内同类产品中的第一品牌。 XAMPP XAMPP 是由 Apache friends 网站开发的,其中 X 表示其支持 Linux、Windows、 Mac OS X、 Solaris 等 多种 平台。 它提供了一个良好的开发环境,主要是用于网站开发者测试使用,但 同样可以 用于实际的生产环境,但要根据实际情况 关闭不需要的功能模块 ,并进行相应的安全设置。 它默认包含了很多 服务器 组件,在本论文中 的所有后端服务器均用此软件部署。 4 Apache Apache[7]服务器是一种开放源代码的 HTTP 服务器,支持多种操作系统平台,目前是最流行的 WWW 服务器软件之一。 它是 相当优秀和经典的 Web服务器, 本次设计中需要 开启 对 PHP 的支持。 MySQL MySQL[7]是一个 开源的 小型关系型 数据库软件, 具有多平台支持和移植性强的特点,同时 拥有良好的性能。 phpMyAdmin 用 PHP 开发的 MySQL Web 管理软件,几乎囊括了 MySQL 所有的功能实现。 使 用十分方便, 只要登录页面就可操作,即便没有接触过数据库的人也可是使用。 FileZilla FileZilla 是一款优秀的 FTP 服务器,它性能优异、配置简单,而且功能相比于其他 FTP 服务器一点也不逊色。 ApacheBench ApacheBench 是 Apache 服务器的一款执行效率测试软件。 可以针对一个 URL 模拟出连续的连接请求,通过在命令行中赋予不同的选项和值,可以仿真不同压力的访问请求,这样就可以根据其反馈结果和服务器端的表现来进行适当的配置调整。 5 3 系统的需求分析、可行性 分析和总体设计 需求分析 本设计搭建的平台是 Discuz! X,主要是为其提供运行的环境,并在各方面进行优化。 重点需要实现以下几个方面: 反向代理和负载均衡:通过前端服务器代理后端服务器集群,实现负载的均衡分配。 静态数据缓存:在网络数据传输的过程中,网站的静态数据可以通过定期缓存到前端代理服务器的方式大大的减少前端服务器与后端服务器的数据通信流量。 会话保持:用户输入自己的账户和密码后登陆,其实是定位到了服务器集群中的某一台。 如果用户刷新,遵照负载均衡的轮询规则,用户就被指引到了另外一台服务器,需要重新登 陆。 这样不仅用户麻烦,而且会无形中加大服务器的负担,所以要把一个用户定位到一个服务器上不变。 Web 和数据库的分离:随着数据的增加,需要把数据库和 Web 分离出来,由独立的一台服务器提供数据库服务,从而提高整个集群系统的性能。 Web 和静态附件的分离:由于静态附件的体积较大和文件繁多,使得附件的传输和管理成为 Web 服务器高速运行的瓶颈。 如果把静态附件分离出来,不仅可以大大减轻 Web 压力,还能提高附件上行和下行的效率。 可行性分析 针对需求分析,进行以下可行性分析。 6 技术实现可行性分析 通过 nginx 的 模块的反向代理和负载均衡功能解决相应的问题,启用 ip_hash 实现会话保持。 对于静态数据缓存可在 nginx 的 server 模块中加入相应的缓存设置。 通过分别部署 Discuz !X Web 服务器,并设置其连接远程数据库服务器实现 Web 和数据库分离。 通过启用 Discuz !X 的远程附件功能,并搭建 FTP服务器实现静态附件分离。 经济可行性分析 本论文设计全部采用开放源代码的免费软件,不仅节约了成本,而且可以很好的利用开源软件的二次开发特性,在实际生产部署中,可以根据需要加入自己编写的功能模块。 系统总体设计 总 体设计主要从网络拓扑图、层次结构图两个方面来介绍。 7 负载均衡系统的拓扑图 图 1 拓扑图 如图 1 所示,服务器集群系统分为 3 台 Web 服务器, 1 台 FTP 服务器,1 台数据库服务器和它们的 nginx 前端反向代理服务器。 测试机使用 3 台,是为了具体实施时进行实时性测试。 其中 3 台 Web 是负载均衡实现的主要对象,也是 Discuz !X 网站部署的服务器。 采用 2 台交换机是为了把集群系统和测试机物理上分开,使两个网络的数据通信集中在两个交换机的连接线上,仿真不同网络的访问(在详细设计中会提到)。 8 负载均衡系统的层次结构图 图 2 层次结构图 图 2 为整个系统的层次结构图 [2]。 用户发送请求经过了三个层次结构,反向代理层会根据用户的请求以轮询的形式把请求转发给 Web 应用层, Web应用层再根据请求的具体内容去访问文件层和数据层。 用户请求 反向代理层 Web 应用层层 文件 /数据层 FTP 服务器 数据库服务器 分配 请求 nginx 9 4 系统详细设计 nginx反向代理服务器设计部署 系统总体环境的说明 广域网模拟的必要性:要模拟广域网环境就需要加入 DNS 服务和路由器,来实现在不同网络之间的互联和模拟域名的解析。 但是其实还是没能 真实的体现广域网多网络和众多用户的特点,所以没有采用 上述方法模拟广域网环境。 在本系统中, nginx 要求主机有一个域名,所以在测试客户端的 系统 hosts 文件中加入如下代码,实现域名解析。 该系统中所有的计算机全部采用相同配置的联想台式机。 大 体 配置如下: CPU: Intel Pentium(R) DualCore E5300 内存: 2GB 硬盘: 250GB 操作系统平台:除了反向代理服务器 采用 Ubuntu LTS 外,其他的一律为 Windows Xp Professional SP2。 Ubuntu 的安装和配置 Ubuntu 的安装过程和其他 Linux 发行版的安装过程差不多,甚至还要更简单。 文件系统采用最经典的分法:根文件系统 /, swap 交换区( 倍于内存大小)。 安装完成后,配置 /etc/apt/ 软件源,以备下一步安装库文件。 10 静态 ip 的配置 /etc/work/interfaces,屏蔽 iface eth0 i dhcp,添加 nginx 的编译安装、启动和关闭 5 月初 nginx[4]发布了 版本,这意味着 nginx 已经正式迈入了新的阶段,此间历时达 9 年之久,本次编译采用最新稳定版 ,从官方下载源代码。 编译安装过程如下: //更新到最新的软件列表文件 aptget update // 创建 nginx 专用 组和用户 groupadd data g 33 useradd u 33 data data chown R data:data /var/ //安装依赖库 aptget install libpcre3 libpcre3dev libpcrecppo libssldev zlib1gdev //编译安装 tar zxvf / cd ./configure with_ssl_module \ 开启对 HTTPS 的支持 with_stub_status_module \ 开启 nginx 运行状态查看 address mask gateway 11 支持 withgzip_static_module \ 开启对 gzip 的支持 make make install nginx 启动 进程。 //启动 cd /usr/lo。基于linux_nginx_反向代理服务器的应用研究_毕业论文(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。