一:认识 Nginx
1.什么是Nginx ?
Nginx ("engine x") 是一个高性能的HTTP和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的.
2.优点?
在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,而在实际的运作中,是可以支持二万至四万个平行链接。
Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。
Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bugs非常少的服务器。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。
3.Tomcat与Nginx性能对比
Tomcat 服务器作为一个 Web 服务器,其并发数在 300-500 之间,如果有超过 500的并发数便会出现 Tomcat 不能响应新的请求的情况,严重影响网站的运行。另外,在访问量大的情况下,Tomcat 的线程数会不断增加。由于Tomcat 自身对内存的占用有控制,当对内存的占用达到最大值时便会出现内存溢出,对网站的访问严重超时等现象,这时便需要重新启动 Tomcat 以释放占用的内存,这样做便会阻断网站运行。所以对 Tomcat 做负载均衡便很有必要。目前可以和 Tomcat 做负载均衡的主流服务器是 Apache ,但是 Nginx 由于功能多、配置简单等优点逐渐成为很多负载均衡服务器的首选。 Nginx 的并发数可达到50000 ,所以理论上可以和Tomcat 以 1:100 的比例来配置,这样便可以很好的解决网站并发瓶颈问题。
4.补充什么是反向代理
反向代理方式实际上就是一台负责转发的代理服务器,貌似充当了真正服务器的功能,但实际上并不是,代理服务器只是充当了转发的作用,并且从真正的服务器那里取得返回的数据。这样说,其实nginx完成的就是这样的工作。我们让nginx监听一个端口,譬如80端口,但实际上我们转发给在8080端口的tomcat,由它来处理真正的请求,当请求完成后,tomcat返回,但数据此时没直接返回,而是直接给nginx,由nginx进行返回,这里,我们会以为是nginx进行了处理,但实际上进行处理的是tomcat。

二:搭建实例
1.先去 nginx官网下一个软件。http://nginx.org/en/download.html可以到这里去下。由于我的是windows系统,所以下载windows版。下完后把软件启动。进入到nginx文件夹,打开cmd。直接start nginx就OK了。我安装的路径F:\nginx-1.9.9

如果看到窗口闪了一下,说明启动成功,打开任务管理器查看 是否有两个nginx.exe。 如果有才真正开启成功。

2.修改conf 下的 nginx.conf文件 负载均衡设置,看到如下配置

这段代码在server里面,相当于一个代理服务器,当然可以配置多个。
下面我们仔细来分析一下:
listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。最低80。
server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。
location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。
index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。
error_page: 是代表错误的页面。
那我们知道了具体的配置了,怎么让它访问localhost时转到tomcat时。实际上就修改两个地方:

proxy_pass,它表示代理路径,相当于转发。
修改了文件,在cmd窗口执行 nginx -s reload nginx可以重新加载文件的。
然后访问网页localhost,则会得到我们想要的结果:

3.配置多个Tomcat 也是如此,如下:
我们在server外添加了一个upstream,而直接在proxy_pass里面直接用http://+upstream的名称来使用。

4.注意 你的项目必须都部署到每一台服务器上!
访问项目的路径为:
localhost/项目名/方法名
5.关闭Nginx
直接运行 nginx -s stop 就可以关闭了.
来源:https://www.cnblogs.com/majun520/p/5052273.html