一、Nginx的概述

1、什么是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网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

2、为什么使用Nginx:

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

二、Nginx完成负载均衡

完成Nginx负载均衡,那么需要先来介绍Tomcat的安装和配置,我们首先要来配置Tomcat完成集群的配置.因为我们没有多台服务器运行Tomcat.那么我们可以模拟在一台服务器上运行多个Tomcat程序.

2.1、Tomcat配置Tomcat集群:

步骤一:下载Tomcat:

http://tomcat.apache.org/download-90.cgi

步骤二:安装和配置Tomcat:

直接将下载后的Tomcat解压在本地磁盘:解压两个分别命名为tomcat1和tomcat2.

配置tomcat环境变量:

分别完成如下配置:(需要将tomcat带有端口号的地方改成不同的端口即可.)分别打开两个tomcat的conf下的server.xml

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:

<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" />

三、Nginx的安装和部署

3.1、Nginx的安装

将nginx-1.8.0.zip解压包某个盘符下运行:目录结构如下:

双击nginx.exe即可运行:打开浏览器http://localhost:80显示如下页面:

说明安装成功!!!

3.2、Nginx的负载均衡的配置

打开C:\nginx-1.8.0\conf\nginx.conf这个文件:

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

四、tomcat共享配置

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

4.1、配置Tomcat的session共享可以有三种解决方案

第一种是以负载均衡服务器本身提供的session共享策略,每种服务期的配置是不一样的并且nginx本身是没有的。

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

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

4.2、配置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基础、html5、javaEE基础、struts2、spring、redis、luncene、oracle等,将可获得以上的优质视频教程及源码。

Nginx在Windows平台的配置与使用相关推荐

  1. Windows平台Eclipse配置Maven

    Windows平台Eclipse配置Maven 在Eclipse中配置Maven,安装Maven插件,两个:m2eclipse和m2e-extras(后者包含跟svn结合的SCM handler). ...

  2. movidius 神经计算棒 ncsdk windows 平台 支持 配置 教程

    概述:movidius ncs的ncsdk目前官方还不支持windows,但是inter好像发布了openvino,这个里面是包含ncsdk的好像是支持windows的.现在不讲openvino,讲n ...

  3. win安装nginx php mysql_win平台安装配置Nginx+php+mysql 环境

    1.准备工作 (1)PHP 版本5.6.17 下载地址  PHP官网  脚本之家 下载地址 (2)Nginx 版本1.8.0 下载地址  Nginx官网 脚本之家 下载地址 (3)MySQL 版本5. ...

  4. laravel + php cgi + nginx在windows平台下的配置

    1.d:\xampp\php\php-cgi.exe -b 127.0.0.1:9000 -c d:\xampp\php\php.ini 2.nginx conf配置如下: #user nobody; ...

  5. nginx在windows上的配置和优化

    Nginx (engine x) 是一个高性能的 HTTP和 反向代理服务器,也是一个IMAP/POP3/SMTP 服务器.Nginx是由伊戈尔·赛索耶夫为 俄罗斯访问量第二的Rambler.ru 站 ...

  6. 在windows平台搭建基于nginx的直播服务器

    1.nginx简介 Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功 ...

  7. VS2013+openCV3.0无脑配置方法+解决警告问题【windows平台】

    VS2013+openCV3.0无脑配置方法+解决警告问题[windows平台] 参考文章: (1)VS2013+openCV3.0无脑配置方法+解决警告问题[windows平台] (2)https: ...

  8. nginx php win平台配置

    nginx比apache更轻量级更简单更易用 1.程序包 php http://windows.php.net/downloads/releases/ php以fastCGI模式运行,选nts更好提高 ...

  9. Nginx在Windows下载安装启动与配置前后端请求代理

    场景 Nginx入门教程-简介.安装.反向代理.负载均衡.动静分离使用实例: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103 ...

最新文章

  1. 使用Python部署机器学习模型的10个实践经验
  2. mysql error104528000_腾讯云服务器CentOS安装JDK+Tomcat+MySQL详细步骤(以及遇到的各种坑)...
  3. 初学Windows编程笔记1——窗口和消息
  4. 图像处理:Hough变换原理分析
  5. BugKuCTF 加密 散乱的密文
  6. qt 调用qpainter_在Qt5.4中如何实现QOpenGLWidget和QPainter混合编程
  7. mysql innodb status_查看innodb的运行状态
  8. Hadoop集群安装部署_伪分布式集群安装_01
  9. HTML5锤子官网,美国ESTWING 一体化锻造羊角锤 非常好用的锤子
  10. SQL Server 2005 性能优化实战系列(文章索引)
  11. SWF 学习笔记 ——《如何在内存中提取出加密的SWF》
  12. 京东超市 导航条布局
  13. java的regex_Java的Regex --正则表达式
  14. IT项目的常见风险及应对措施
  15. html图形渐变颜色一半一半,CSS3教程:background-image之放射性渐变(radial-gradient)详解...
  16. 深度linux安装cad,在deepin下安装CAD — 原生CAD 看图画图
  17. python编程8g的内存够么_内存8G够用吗?深入解读~
  18. HTML5与视频传输_拔剑-浆糊的传说_新浪博客
  19. An Industrial-Strength Audio Search Algorithm
  20. OSChina 周三乱弹 ——怎么让程序员精神百倍?

热门文章

  1. __stdcall详解
  2. ST17H26代码优化的疑问
  3. cass软件yy命令_WIN10系统中的CASS字体问题
  4. 区块链BaaS云服务(29) 溪塔科技 CITA-Cloud
  5. (chap6 Http首部) 响应首部字段 LocationProxy-AuthenticateRetry-After
  6. 深度学习的数学 (5)偏导数
  7. 【笔记】公钥密码学之基于离散对数的密码体制
  8. 修改PE可选头关闭ASLR
  9. web安全101之如何理解XXE?
  10. python3.x获取windows自启动程序列表