Nginx介绍及使用方法

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

1.3Nginx服务器特点
1)反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
在这里插入图片描述
正向代理:需要我们用户,手动的设置代理服务器的ip和端口号
反向代理:代理服务器的,用户不需要设置
2)负载均衡
负载均衡,英文名称为Load Balance,是指建立在现有网络结构之上,并提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。其原理就是数据流量分摊到多个服务器上执行,减轻每台服务器的压力,多台服务器共同完成工作任务,从而提高了数据的吞吐量。
在这里插入图片描述
3)动静分离
动静分离静动分离,就是将css、js、jpg等静态资源和jsp等动态资源分开处理,以此提高服务器响应速度,提高性能。而这里就是将静态的资源放到反向服务器,节省用户的访问时间。
在这里插入图片描述
2.Windows下使用Nginx完成负载均衡
完成Nginx负载均衡,那么需要先来介绍Tomcat的安装和配置,我们首先要来配置Tomcat完成集群的配置.因为我们没有多台服务器运行Tomcat.那么我们可以模拟在一台服务器上运行多个Tomcat程序.
使用Tomcat配置Tomcat集群:
步骤一:下载Tomcat:
http://tomcat.apache.org/download-70.cgi
步骤二:安装和配置Tomcat:
直接将下载后的Tomcat解压在本地磁盘:解压两个分别命名为tomcat1和tomcat2.

分别完成如下配置:(需要将tomcat带有端口号的地方改成不同的端口即可.)分别打开两个tomcat的conf下的server.xml
tomcat1\apache-tomcat-7.0.52\conf\server.xml
在这里插入图片描述
1.1.1Nginx的安装和部署:
Nginx的安装:
将nginx-1.8.0.zip解压包某个盘符下运行:目录结构如下:
在这里插入图片描述
双击nginx.exe即可运行:打开浏览器http://localhost:80显示如下页面:
在这里插入图片描述
说明安装成功!!!
关闭nginx:打开任务管理器,结束进程既可。
在这里插入图片描述
Nginx的负载均衡的配置:
1.nginx反向代理两台tomcat
打开D:\nginx\nginx-1.8.0\nginx.conf这个文件:
在这里插入图片描述
关闭Nginx进程重新启动Nginx(即:双击Nginx.exe既可)
测试:访问http://localhost:80结果如下:
在这里插入图片描述
访问:http://localhost/test/
在这里插入图片描述
2.nginx反向代理两台服务器(即代理tomcat集群)
打开D:\nginx\nginx-1.8.0\nginx.conf这个文件:
在这里插入图片描述
关闭Nginx进程重新启动Nginx(即:双击Nginx.exe既可)
测试:访问http://localhost:80/test结果如下:
在这里插入图片描述
通过以上的配置我们已经可以通过访问localhost:80/test访问到不同的tomcat来分担服务器端的压力.
请求负载过程中会话信息不能丢失.那么需要在多个tomcat中session需要共享.

  • 配置Tomcat的session共享可以有两种解决方案:
    第一种是利用web容器本身的session共享策略来配置共享。针对于weblogic这种方式还是靠普的。但是针对于tomcat这种方式存在很大的缺陷,主要因为是依靠广播方式来实现的session复制,会浪费很多带宽导致整个网络反映缓慢。官网也建议这种方式最好不要超过4台tomcat
    第二种是Tomcat集群+redis的Session共享配置方法.
    第三种:保证一个ip地址永远的访问一台web服务器,就不存在session共享问题了,在linux
    在nginx的配置文件中upstream中添加 ip_hash;
    在这里我们以第一种方式为例:
    配置Tomcat中session的共享:
    步骤一:修改tomcat的配置文件
    D:\tomcat\tomcat1\apache-tomcat-7.0.52\conf\server.xml和
    D:\tomcat\tomcat2\apache-tomcat-7.0.52\conf\server.xml文件,最简单的集群配置只需要将节点中注释掉的下面这句取消注释即可:
    Xml代码去掉注释(Cluster就是集群的意思):
    在这里插入图片描述
    注释去掉之后
    在这里插入图片描述

步骤二:修改tomcat1和tomcat2的项目的web.xml文件:
web.xml文件的修改很简单:只需要在节点中添加这个节点就可以了。
在这里插入图片描述
OK,有了这二步就实现了Tomcat的集群和Session的共享了。
在这里插入图片描述