nginx

来源:互联网 发布:字体管家方萌 mac 编辑:程序博客网 时间:2024/05/30 07:13

什么是nginx?

Nginx ("engine x") 是一个高性能的HTTP和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、新浪、网易、腾讯、 淘宝等。

为什么使用nginx?

互联网飞速发展的今天,大用户量高并发已经成为互联网的主体.怎样能让一个网站能够承载几万个或几十万个用户的持续访问呢?这是一些中小网站急需解决的问题。用单机tomcat搭建的网站,在比较理想的状态下能够承受的并发访问量在150到200左右。按照并发访问量占总用户数量的5%到10%这样计算,单点tomcat网站的用户人数在1500到4000左右。对于一个为全国范围提供服务的网站显然是不够用的,为了解决这个问题引入了负载均衡方法。负载均衡就是一个web服务器解决不了的问题可以通过多个web服务器来平均分担压力来解决,并发过来的请求被平均分配到多个后台web服务器来处理,这样压力就被分解开来。

负载均衡服务器分为两种一种是通过硬件实现的负载均衡服务器,简称硬负载 例如:f5。另一种是通过软件来实现的负载均衡,简称软负载: 例如apache和nginx。硬负载和软负载相比前者作用的网络层次比较多可以作用到socket接口的数据链路层对发出的请求进行分组转发但是价格成本比较贵,而软负载作用的层次在http协议层之上可以对http请求进行分组转发并且因为是开源的所以几乎是0成本,并且阿里巴巴,京东等电商网站使用的都是Nginx服务器。

1:负载均衡


如上图所示是:nginx的代理请求转发的图,当用户量超过一定规模的情况下,我们的想法是把请求分发给

不同的服务器去承载不同的压力,然而怎么来决定这个分发策略,才能是服务器分到的请求相对均衡呢,这就是我

们的nginx服务器了,它可以相对均衡分发请求,充分利用后台服务器。



如上图所示是正向代理的示义图,它收集前台用户请求,处理请求排队问题,帮用户去上网,这就是正向代理。


如上图所示,它把用户请求分发给不同的服务器,不做处理,这就是反向代理。


如上图所示的是win+nginx的目录,我们要启动nginx可以启动exe文件或是

关闭nginx需要使用: nginx -s stop     重新加载配置文件:nginx -s reload

现在我们访问nginx:

现在我们利用ngin来做两个服务器的代理


如上图所示我们可以先下载连个tomcat


修改tomcat的环境配置,使tomcat能够独立运行并启动。


如上图所示分别为每一个tomcat配置不同的端口号。如下所示是在nginx的conf文件中对文件的配置,值得注意的是要在

C:\Windows\System32\Drivers\etc\hosts:目录下对域名进行配置

那么问题来了,两个tomcat服务器是怎么样指向我们的同一个webApp的呢?

我们又是如何控制每台主机的访问比例的呢?


如上图所示,我们可以在nginx的配置文件夹下,进行配置,weight权重,来达到对,新旧服务器的合理利用域资源分配。、


我们为每一个tomcat中的配置文件,写一个conf虚拟磁盘路径


如上图所示我们先写一个这样的xml文件。并把myAPP文件放在两个tomcat的\Catalina\localhost目录下

这样两个tomcat就能共同指向同一个应用了,那么问题来了,两个tomcat访问同一个应用域对象怎么共享,

想知道答案,请继续需关注我的博客?


原创粉丝点击