Nginx在Windows平台的配置与使用

1、Nginx的概述

一、什么是Nginx:

Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特色是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。html

二、为何使用Nginx:

互联网飞速发展的今天,大用户量高并发已经成为互联网的主体.怎样能让一个网站可以承载几万个或几十万个用户的持续访问呢?这是一些中小网站急需解决的问题。用单机tomcat搭建的网站,在比较理想的状态下可以承受的并发访问量在150到200左右。按照并发访问量占总用户数量的5%到10%这样计算,单点tomcat网站的用户人数在1500到4000左右。对于一个为全国范围提供服务的网站显然是不够用的,为了解决这个问题引入了负载均衡方法。负载均衡就是一个web服务器解决不了的问题能够经过多个web服务器来平均分担压力来解决,并发过来的请求被平均分配到多个后台web服务器来处理,这样压力就被分解开来。
负载均衡服务器分为两种一种是经过硬件实现的负载均衡服务器,简称硬负载例如:f5。另外一种是经过软件来实现的负载均衡,简称软负载:例如apache和nginx。硬负载和软负载相比前者做用的网络层次比较多能够做用到socket接口的数据链路层对发出的请求进行分组转发可是价格成本比较贵,而软负载做用的层次在http协议层之上能够对http请求进行分组转发而且由于是开源的因此几乎是0成本,而且阿里巴巴,京东等电商网站使用的都是Nginx服务器。html5

2、Nginx完成负载均衡

完成Nginx负载均衡,那么须要先来介绍Tomcat的安装和配置,咱们首先要来配置Tomcat完成集群的配置.由于咱们没有多台服务器运行Tomcat.那么咱们能够模拟在一台服务器上运行多个Tomcat程序.java

2.一、Tomcat配置Tomcat集群:

步骤一:下载Tomcat:nginx

http://tomcat.apache.org/download-90.cgi
这里写图片描述web

步骤二:安装和配置Tomcat:redis

直接将下载后的Tomcat解压在本地磁盘:解压两个分别命名为tomcat1和tomcat2.
这里写图片描述
配置tomcat环境变量:
这里写图片描述
这里写图片描述spring

分别完成以下配置:(须要将tomcat带有端口号的地方改为不一样的端口便可.)分别打开两个tomcat的conf下的server.xmlapache

tomcat1/conf/server.xml:浏览器

<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
复制代码

tomcat2/conf/server.xml:tomcat

<Server port="80065" shutdown="SHUTDOWN">
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
复制代码

3、Nginx的安装和部署

3.一、Nginx的安装

将nginx-1.8.0.zip解压包某个盘符下运行:目录结构以下:
这里写图片描述
双击nginx.exe便可运行:打开浏览器http://localhost:80显示以下页面:
这里写图片描述
说明安装成功!!!

3.二、Nginx的负载均衡的配置

打开C:\nginx-1.8.0\conf\nginx.conf这个文件:
这里写图片描述

修改:C:\Windows\System32\drivers\etc\hosts文件

4、tomcat共享配置

经过以上的配置咱们已经能够经过访问www.taoge.com访问到不一样的tomcat来分担服务器端的压力.请求负载过程当中会话信息不能丢失.那么须要在多个tomcat中session须要共享.

4.一、配置Tomcat的session共享能够有三种解决方案

第一种是以负载均衡服务器自己提供的session共享策略,每种服务期的配置是不同的而且nginx自己是没有的。

第二种是利用web容器自己的session共享策略来配置共享。针对于weblogic这种方式仍是靠普的。可是针对于tomcat这种方式存在很大的缺陷,主要由于是依靠广播方式来实现的session复制,会浪费不少带宽致使整个网络反映缓慢。官网也建议这种方式最好不要超过4台tomcat,具体的内容可参考/webapps/docs/cluster-howto.html里面有详细的说明。下面是具体的配置过程

第三种是Tomcat集群+redis的Session共享配置方法.
在这里咱们以第二种方式为例

4.二、配置Tomcat中session的共享

步骤一:修改server.xml文件,最简单的集群配置只须要将节点中注释掉的下面这句取消注释便可:
Xml代码:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
使用这样方法配置的集群会将Session同步到所在网段上的全部配置了集群属性的实例上(此处讲所在网段可能不许确,是使用Membership 的address和port来区分的。tomcat集群的实例若是在Membership配置中有相同的address和port值的tomcat被分到同一个集群里边。他们的session是相互共享的,同一个session的集群被称为一个cluster。能够配置多个cluster,可是cluster和cluster之间的session是不共享的)。也就是说若是该广播地址下的全部Tomcat实例都会共享Session,那么假若有几个互不相关的集群,就可能形成Session复制浪费,因此为了不浪费就须要对节点多作点设置了,以下:
Xml代码

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">    
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>

</Channel>
</Cluster>
复制代码

加了一个Channel,里面包了个Membership,我们要关注的就是membership的port属性和address属性,不一样的集群设置不一样的port值或address值,从目前的使用来看,基本上是隔离开了。

步骤二:修改项目的web.xml文件:
web.xml文件的修改很简单:只须要在节点中添加这个节点就能够了。
OK,有了这二步就实现了Tomcat的集群和Session的共享了。

若是想获取更多源码或者视频教程,欢迎关注个人微信公众号 好好学java,在公众号里,回复:java基础、html五、javaEE基础、struts二、spring、redis、luncene、oracle等,将可得到以上的优质视频教程及源码。
这里写图片描述

相关文章
相关标签/搜索