基于NGINX的代理服务器搭建---毕业论文_第1页
基于NGINX的代理服务器搭建---毕业论文_第2页
基于NGINX的代理服务器搭建---毕业论文_第3页
基于NGINX的代理服务器搭建---毕业论文_第4页
基于NGINX的代理服务器搭建---毕业论文_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计论文题目基于NGINX的代理服务器搭建学 院: 电子与信息工程学院 学生姓名: 林耀文 专业班级: 12级计算机网络技术1班 学 号: 2012120135 指导教师: 叶红卫 2015 年 6月16日摘 要Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。负载均衡,单从字面上的意思来理解就可以解释多台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。基于Liunx系统搭建Nginx服务器,需要复杂的环境包,包括zlib、zlib-devel、gcc-c+、libtool、open openssl、openssl-devel、pcre pcre-devel,这些环境包插件对于搭建Nginx服务器缺一不可。本次设计中,我们同样采用基于Nginx搭建Web应用服务器,另一台则作为Nginx负载均衡服务器。Nginx配置负载均衡使用的模块是ngx_http_upstream_modulenginx。我们配置负载均衡使用的算法有:轮询、加权轮询、ip hash。设计采用加权轮询算法就是在轮询算法的基础上,给服务器加上权重(weight),客户端请求根据权重比例分配到后端服务器上,其实轮询算法的权重都是一样的。关键词:NGINX;代理服务器;负载均衡;Web应用服务器II目 录摘 要I目 录II第一章 绪 论11.1 背景分析11.2负载均衡器1第二章 部署服务器32.1什么是虚拟主机技术32.2什么是正向代理与反向代理32.3两者区别42.4为什么需要负载均衡代理服务器4第三章 基于NGINX的代理服务器搭建63.1 NGINX代理服务器搭建基本环境63.2代理服务器搭建的前期准备63.3代理服务器NGINX的安装和配置93.4基于NGINX网页服务器的安装和配置143.5负载均衡服务器的搭建与实现16结束语19参考文献20致 谢21第一章 绪 论1.1 背景分析Nginx 是一个很牛的高性能Web和反向代理服务器, 它具有有很多非常优越的特性:在高连接并发的情况下,Nginx是Apache服务器不错的替代品: Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一. 能够支持高达 50,000个并发连接数的响应, 感谢Nginx为我们选择了epoll and kqueue作为开发模型.Nginx作为负载均衡服务器: Nginx 既可以在内部直接支持Rails和PHP程序对外进行服务, 也可以支持作为HTTP代理服务器对外进行服务. Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比Perlbal要好很多.作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm描述了成功并且美妙的使用经验.Nginx 是一个安装非常的简单 ,配置文件非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动. 你还能够不间断服务的情况下进行软件版本的升级1.2负载均衡器Ningx作为负载均衡器的同时也是反向代理服器,配置语法相当简单,可以按轮询、IP_hash、url_hash、权重等多种方法对后端的服务器作负载均衡,同时还支持后端服务器的健康检查。另外,它相对于LVS比较有优势的一点,由于它是基于第七层的负载均衡,是根据报头内的信息来执行负载均衡任务,所以对网络的依赖比较小,理论上只要ping得通就能够实现负载均衡;在国内,Nginx不仅作为一款性能优异的负载均衡器,它同时也是一款适用于高并发环境的WEB应用软件,在新浪、金山、迅雷在线等大型网站都得到了应用,其作为负载均衡器的优点如下:1.配置文件非常简单:风格跟程序一样通俗易懂。2.成本低廉:Nginx为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币。3.支持Rewrite重写规则:能够根据域名、URL的不同,将 HTTP 请求分到不同的后端服务器群组。4.内置的健康检查功能:如果 Nginx Proxy 后端的某台 Web 服务器宕机了,不会影响前端访问。5.节省带宽:支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头。6.稳定性高:用于反向代理,宕机的概率微乎其微。特别是通过跟踪一些已上线的项目,发现在高并发的情况下,Nginx作为负器均衡器/反向代理宕机的次数几乎是零。第二章 部署服务器2.1什么是虚拟主机技术利用虚拟主机技术,可以把一台真正的主机分成许多虚拟的主机,每一台虚拟主机都具有独立的域名和IP地址,具有完整的Internet服务器(www, FTP,email)功能。虚拟主机之间完全独立,在外界看来,每一台虚拟主机和一台独立的主机完全一样。效果一样但费用却大不一样了。由于多台虚拟主机共享一台真实主机的资源,每个虚拟主机用户承受的硬件费用、网络维护费用、通信线路的费用均大幅度降低,Internet真正成为人人用得起的网络!目前生产环境中,大多数服务提供商都采用了虚拟主机的方式为客户提供web服务,虚拟主机包括基于IP的虚拟主机,基于端口的虚拟主机和基于名称的虚拟主机,由于目前最流行的是基于名称的虚拟主机,也就是可以通过相同端口、相同IP对应多个域名站点,本设计以这种方式为主进行讲解。 2.2什么是正向代理与反向代理正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。结论就是,正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。反向代理的概念继续举例:用户访问 /readme,但上并不存在readme页面,他是偷偷从另外一台服务器上取回来,然后作为自己的内容返回用户,但用户并不知情。这里所提到的 这个域名对应的服务器就设置了反向代理功能。结论就是,反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。2.3两者区别从用途上来讲:正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络使用率。反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。另外,反向代理还可以启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。从安全性来讲:正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。2.4为什么需要负载均衡代理服务器 如何将Web服务器集群当作一个城池,那么负载均衡服务器则相当于城门,重要性不言而喻。如果“城门”关闭了,与外界的通道也就掐断了。如果只有一台Nginx负载均衡服务器,当该服务器发生故障时,则会导致整个网站无法访问。因此,我们需要两台以上的Nginx负载均衡服务器,实现故障转移与高可用。双机高可用一般是通过虚拟IP(也称漂移IP)方式来实现的,基于Linux/Unix的IP别名技术。双机高可用方式目前分为两种:第一种方式为一台主服务器和一台热备服务器,正常情况下主服务器绑定一个公网虚拟IP,提供负载均衡服务,热备服务器处于空闲状态,当主服务器发生故障时,热备服务器接管主服务器的虚拟IP,提供负载均衡服务;第二种方式为两台负载均衡服务器都处于活动状态,各自绑定一个公网虚拟IP,提供负载均衡服务,当其中一台服务器发生故障时,另一台服务器接管发生故障服务器的虚拟IP。第一种方式较为常见,但始终有一台服务器处于空闲状态,浪费了一台服务器的负载均衡处理能力。而第二种方式需要多用一个公网IP。第三章 基于NGINX的代理服务器搭建3.1 NGINX代理服务器搭建基本环境VMware Workstation版本:10.0.4 build-2249910操作系统:CentOS-6.5-i386-minimal虚拟机需要一张网卡,计算机:nginx 公网地址:1计算机:webserver 公网地址:2CentOS系统使用默认管理员账号root,密码设置为123456系统防火墙iptables默认为开启状态,由于需要开启通讯端口88,开放防火墙iptables端口88。3.2代理服务器搭建的前期准备(1)先做好一台基于CentOS-6.5的nginx服务器的虚拟机,需要注意的是网卡设置成桥接模式,存放虚拟机的文件夹命名为nginx。(2)同样的原理,搭建webserver网页服务器,并命名为webserver。如图3-1虚拟机复制所示。图3-1 虚拟机复制(3)打开虚拟机nginx,开启虚拟机并登陆进去。如图3-2系统登陆成功状态所示。图3-2 系统登陆成功(4)修改服务器nginx虚拟机的IP地址,执行命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0进行修改。如图3-3修改IP地址命令所示。图3-3 修改IP地址命令(5)编辑网卡ifcfg-eth0配置文件。如图3-4编辑ifcfg-et0配置文件所示。图3-4 编辑ifcfg-eth0配置文件(6)重启网卡,执行命令service network restart, 令网卡地址生效。如图3-5重启网卡命令所示。图3-5 重启网卡命令(7)使用CentOS-6.5-i386-minimal.iso系统包作为yum源包。如图3-6加载IDE选择iso文件。图3-6 加载IDE选择iso文件(8)分别执行命令mkdir /mnt/iso和mkdir /mnt/cdrom创建iso源,并且创建成功。如图3-7创建iso源,如图3-8创建iso源成功。图3-7 创建iso源图3-8 创建iso源成功(9)执行命令mkdir /etc/yum.repos.d/bak创建yum源文件备份文件夹,并且执行命令cd /etc/yum.repos.d进入yum文件夹,然后执行命令mv *.repo /etc/yum.repos.d/bak拷贝所有原始文件,以防数据丢失找不到原始文件。如图3-9创建yum备份文件。图3-9 创建yum备份文件(9)在yum.repos.d文件夹下,执行命令vi nginx.repo新建yum源配置主文件。如图3-10新建yum源配置主文件。图3-10新建yum源配置主文件(10)执行命令yum clean all,更新yum源路径。如图3-11更新yum源路径,并且提示更新成功。图3-11更新yum源路径3.3代理服务器NGINX的安装和配置(1)利用Winsp远程登陆程序,上传nginx-1.7.7安装包到服务器/opt/目录下。如图3-12Winsp登陆界面。如图3-13Winsp上传界面。图3-12Winsp登陆界面图3-13Winsp上传界面(2)执行命令cd /opt/进入/opt/根目录下,并且执行命令tar zxvf nginx-1.7.7.tar.gz解压文件。如图3-14nginx-1.7.7解压。图3-14nginx-1.7.7解压(3)执行命令cd /opt/nginx-1.7.7进入/nginx-1.7.7/根目录下,并且执行命令./configure。如图3-15执行./configure命令。图3-15执行./configure命令(4)执行命令yum y install make zlib zlib-devel gcc-c+ libtool open openssl openssl-devel pcre pcre-devel如图3-16服务器nginx环境包a, 如图3-17服务器nginx环境包b。提示环境包安装成功提示界面,如图3-18环境包安装成功a, 如图3-19环境包安装成功b, 如图3-20环境包完全安装成功。图3-16服务器nginx环境包a图3-17服务器nginx环境包b图3-18环境包安装成功a图3-19环境包安装成功b图3-20环境包完全安装成功a(5)执行命令cd /usr/local/nginx/conf进入/usr/local/nginx/conf根目录下,并且执行命令vi nginx.conf编辑文件。如图3-21执行./configure命令。如图3-21编辑nginx主文件。图3-21编辑nginx主文件(6)设置worker_processes启动进程CPU数量为1,单个后台worker process进程的最大并发链接数为1024,保持连接时限keepalive_timeout为65秒,设定负载均衡的服务器列表upstream。如图3-22设置负载均衡参数所示。图3-22修改服务器端口(7)修改服务器端口为:88。如图3-23修改服务器端口。图3-23修改服务器端口(8)执行命令cd /usr/local/nginx/sbin,切换到sbin,然后执行命令./nginx使nginx服务器重启生效。如图3-24重启nginx服务器。图3-24重启nginx服务器(9)开放防火墙88端口,执行命令/sbin/iptable I INPUT p tcp dport 88 j ACCEPT,保存命令使其生效,执行命令/etc/init.d/iptables save。如图3-25开放防火墙端口88。图3-25开放防火墙端口(10)测试Nginx服务器是否开启成功。使用外部浏览器访问1:88。 结果显示测试成功。如图3-26测试成功效果。图3-26测试成功3.4基于NGINX网页服务器的安装和配置(1)修改服务器nginx虚拟机的IP地址,执行命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0进行修改。如图3-27修改IP地址所示。图3-27修改IP地址(2)新建一个IP地址为:3的网卡,执行命令ifconfig eth0:0 3。如图3-28新建网卡所示。图3-28新建网卡(3)创建网页内容路径,执行命令mkdir /var/log/nginx/website1和mkdir /var/log/nginx/website2,并且创建网页内容,分别执行命令echo “This is website1” /website1/index.html和echo “This is website2” /website2/index.html,如图3-29创建网页内容所示。图3-29创建网页内容(4)修改nginx.conf文件。执行命令vi /usr/local/nginx/conf/nginx.conf。如图3-30增加网页服务器IP地址(a)和图3-31增加网页服务器IP地址(b)所示。图3-30增加网页服务器IP地址(a)图3-31增加网页服务器IP地址(b)(5)测试Nginx服务器是否开启成功。使用外部浏览器访问2:88 和3:88 结果显示测试成功。如图3-32测试成功效果(a), 图3-33测试成功效果(b)所示。图3-32测试成功效果(a)图3-33测试成功效果(b)3.5负载均衡服务器的搭建与实现(1)配置实现负载均衡的主配置文件,执行命令vi /usr/local/nginx/conf/nginx.conf。如图3-34负载均衡配置(a), 图3-35负载均衡配置(b)所示。图3-34负载均衡配置(a)图3-35负载均衡配置(b)(2)重新启动nginx服务器。如图3-36新建网卡所示。图3-36新建网卡(6)测试Nginx服务器负载均衡功能是否开启成功。使用外部浏览器访问nginx服务器1:88 ,结果自动跳转显示网页服务器两个IP地址的内容。如图3-37测试成功效果(b), 图3-38测试成功效果(c)所示,并且在nginx服务器测试结果与上诉内容相同。如图3-39测试成功效果(a)。图3-37测试成功效果(a)图3-38测试成功效果(b)图3-39测试成功效果(c)结束语 通过本次毕业设计,了解了Nginx,虚拟主机技术,正反向代理,负载均衡服务器,学习了怎么利用Liunx系统搭建Nginx服务器,了解Web服务器软件,服务器代理,虚拟主机技术,Winsp远程登陆软件以及利用YUM源作为本地源对NGINX搭建服务器所需环境进行安装,并且根据两者的不足进行了改进,完成了搭建NGINX服务器的设计,配置及测试,并取得了预期的效果。这次设计由于时间、条件和个人能力的限制,加之设计经验不足,在服务器的整体设计及各模块功能可能设计的不完全,有待进一步完善和改进。这些情况希望在今后的不断学习与应用中把它拓充得更加丰富,以适应不同层次使用者的需求。同时现在基于NGINX的代理服务器技术与网络操作系统的发展将会在可用性、高可靠性和系统冗余等方面得到进一步地提高和完善,我想以后还有很长一段学习与实践的实践,才能在设计基于NGINX的代理服务器方面有所完善。在设计过程中也遇到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论