转自:http://www.360doc.com/content/12/0615/23/15643_218433480.shtml | |
server_name localhost:8080; location / { proxy_pass http://localhost:8080 } 我们就修改了上面两个地方,我的tomcat在8080端口,可以根据自己的需要修改。这里有一个新元素proxy_pass,它表示代理路径,相当于转发,而不像之前说的root必须指定一个文件夹。 此时我们修改了文件,是不是就意思着必须先关了nginx再重新启动了,其实不必,nginx可以重新加载文件的。 我们直接运行:
nginx -s reload 高兴得太早了,我们发现有一个错误: 什么来的,45行发现错误,不希望在那一行找到},于是我们仔细找,发现我们加入的proxy_pass很奇怪,没有;号结尾,这就是问题了,直接修改,然后再运行一下,发现没错误,OK了。 如果不想直接加载,而只是想看看自己的配置文件有没有问题,可以直接输入:
nginx -t 这可以检查配置文件中是否有错。 下面我们所有的修改都假设我们修改完成后运行了nginx -s reload进行重新加载配置文件,请注意。
一切没问题了,然后我们再重新打开http://localhost,我们看到下面的页面: 这时,我们发现它并不是刚才的welcome页面了,而是tomcat的管理页面了,不管我们点击什么链接都是没问题的,相当于直接访问http://localhost:8080一样。
3)上面我们直接试了一个小例子,让nginx进行转发,即所谓的反向代理。但实际上我们的需求不会是这样的,我们需要分文件类型来进行过滤,比如jsp直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP,而html,js,css这些不需要处理的,直接给nginx进行缓存。 下面我们来进行一下配置,让JSP页面直接给tomcat,而html,png等一些图片和JS等直接给nginx进行缓存。 这时最主要用的还是location这个元素,并且涉及到一部分正则,但不难:
location ~ \.jsp$ { proxy_pass http://localhost:8080; } location ~ \.(html|js|css|png|gif)$ { root D:/software/developerTools/server/apache-tomcat-7.0.8/webapps/ROOT; } 我们先要去掉之前配的location /,避免全部请求被拦截了。 然后我们再来看看http://localhost 当我们不指定jsp页面的时候,它会出现找不到,因为,此时并没有相应的location匹配,所以就会有404错误,这时就跳到了nginx自定义的error页面去了。 而当我们用http://localhost/index.jsp去访问时,我们看到了熟悉的页面: 而且图片那些都显示正常,因为图片是png的,所以直接在tomcat/webapps/ROOT目录下直接查找,当然,如果我们点击Manager Application HOW-TO这个链接,我们发现: 它还是找不到,为什么呢?因为这是个html页面,但它并不在ROOT目录下,而是在docs目录下,但当我们匹配html时,我们却到ROOT目录下去找,所以还是找不到这个页面。
一般情况下,如果我们需要用nginx来进行静态文件伺服,一般都会把所有静态文件,html,htm,js,css等都放在同一个文件夹下,这样就不会有tomcat这样的情况了,因为tomcat下的是属于不同的项目,这个我们就没办法了。
3)有些人会说,这些都只会找一台服务器,但如果我们想在一台服务器挂了的时候,自动去找另外一台,这怎么办?这实际上nginx都考虑到了。 这时,我们之前用的proxy_pass就有大用途了。 我们把之前的第一个例子,即全部都代理的修改一下: 最后修改如下:
upstream local_tomcat { server localhost:8080; } server{ location / { proxy_pass http://local_tomcat; } #......其他省略 } 我们在server外添加了一个upstream,而直接在proxy_pass里面直接用http://+upstream的名称来使用。 我们还是直接来http://localhost,还是和第一个一样的效果,所有链接都没问题,说明我们配置正确。 upstream中的server元素必须要注意,不能加http://,但proxy_pass中必须加。 我们刚才说可以在一个服务器挂了的情况下连到另外一个,那怎么弄呢? 其实很简单,在upstream中的local_tomcat中配置多一个server。比如我现在弄多一个jetty,端口在9999,所以我们配置如下:
upstream local_tomcat { server localhost:8080; server localhost:9999; } 此时,我们关闭tomcat,而只开jetty。我们来运行http://localhost看看效果: 我们看到它请求到了jetty的页面,但由于jetty的机制,这时没有显示jetty主页,这个我们先不管。但我们的在一个服务器挂的情况下自动使用另外一个的功能实现了。
但有时我们就不想它挂的时候访问另外一个,而只是希望一个服务器访问的机会比另外一个大,这个可以在server最后加上一个weight=数字来指定,数字越大,表明请求到的机会越大。
upstream local_tomcat { server localhost:8080 weight=1; server localhost:9999 weight=5; } 这时我们给了jetty一个更高的权值,让它更有机会访问到,实际上当我们刷新http://localhost访问的时候发现jetty访问机率大很多,tomcat几乎没机会访问,一般情况下,如果我们必须这样用,不要相关太大,以免一个服务器负载太大。 当然,server还有一些其他的元素,比如down表示暂时不用到该服务器等等。这些可以参考nginx的wiki。也许写了一大堆,有人会有问题,那nginx怎么关闭呢?这倒是个问题,其实直接运行nginx -s stop就可以关闭了。
基本上nginx的用法是这样,深入的以后我们如果用到再学习。 |
- 浏览: 212118 次
- 性别:
- 来自: 济南
最新评论
-
18335864773:
pageoffice生成excel就不用使用poi。pageo ...
jxl导出excel -
tyronewj:
正好我用来转义微博信息
Java:转换汉字为unicode形式的字符串和转换unicode形式字符串转换成汉字 -
guo_jinchen:
这是primefaces 的么?
选择TAB时刷新内容 -
Ennissuper:
用$.pdialog.closeCurrent();关闭当前页 ...
如何关闭DWZ中的dialog弹出框 -
落雪封:
前台如何接收?
BaseAction(需要用到fastjson)
相关推荐
### Tomcat结合Nginx使用详解 #### 一、引言 随着互联网技术的发展与进步,Web服务器的选择和配置成为了确保网站稳定运行的关键因素之一。其中,Apache与IIS作为传统Web服务器领域的佼佼者,曾经占据着市场的主要...
### Nginx与Tomcat整合的关键知识点 #### 一、Nginx与Tomcat整合概述 - **背景介绍**:Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。其特点是占有内存少...
【Nginx与Tomcat的关系】Nginx和Tomcat是两种不同的Web服务器,它们在IT行业中常被结合使用以优化Web应用的性能和架构。Nginx以其高性能、轻量级的特性,通常用于处理静态内容和反向代理任务,而Tomcat则是一个Java...
3. **Nginx与Tomcat结合的优势** - Nginx作为前端服务器,可以很好地处理静态资源,减轻Tomcat服务器的压力。 - 利用Nginx实现负载均衡,可以在多台Tomcat服务器之间均衡地分配请求,提高系统的整体处理能力。 ##...
本实例将详细讲解如何使用Nginx作为反向代理和负载均衡器,结合Tomcat9作为Java应用服务器来搭建一个负载均衡系统。Nginx以其高性能、轻量级的特性,常被用作前端服务器,负责将用户请求分发到后端多个Tomcat实例上...
为了实现这一目标,我们可以结合Nginx反向代理服务器和memcached内存缓存系统来达到高效、可靠的Session共享。以下是对这个主题的详细阐述: 首先,让我们理解Session的概念。Session是Web应用程序用来跟踪用户状态...
因此,将Nginx与Tomcat结合使用,可以发挥各自的优势。 **Nginx与Tomcat的整合** 1. **反向代理**:配置Nginx作为反向代理服务器,将HTTP请求转发到Tomcat实例。这可以通过在Nginx的配置文件`conf/nginx.conf`中...
在Java Web应用领域,Nginx作为前端反向代理服务器,Tomcat作为后端应用服务器,两者结合可以有效地实现负载均衡,提升系统性能。 #### 二、Nginx与Tomcat简介 **Nginx** 是一款高性能的HTTP和反向代理Web服务器,...
这种模式结合了Nginx的反向代理和负载均衡能力,Tomcat作为Java应用服务器处理业务逻辑,而Redis则用于高效地存储和共享用户会话(session)数据。下面我们将详细探讨这些技术组件及其相互作用。 **Nginx** Nginx...
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而`Nginx`和`Tomcat`的结合在实现这一目标上扮演了重要角色。`Nginx`作为一款高性能的反向代理服务器,常被用于负载均衡,而`Tomcat`则是一款广泛使用的Java...
总结来说,Linux环境下通过Nginx+Tomcat集群建设,可以构建出一个高效、可扩展的Web服务架构,同时利用Nginx的反向代理功能和负载均衡策略,确保系统的稳定性和性能。在实际操作中,还需要根据具体业务需求进行定制...
总结,Nginx+Tomcat的配置集群负载均衡是一个综合性的IT任务,涉及到网络通信、服务器配置、负载策略选择等多个方面。通过这样的架构,我们可以构建出一个高效、健壮的Web服务系统,满足高并发和高可用性的需求。在...
为了确保负载均衡效果,你可以使用Nginx的访问日志(access.log)进行分析,或者结合第三方工具(如Nginx Plus、Prometheus、Grafana)进行实时监控和性能优化。 总结,配置Nginx进行Tomcat负载均衡是一项重要的...
本次测试的主要目的是评估单个Tomcat服务器与Nginx反向代理结合后的性能表现,包括处理并发请求的能力、响应速度以及资源消耗等方面。通过对比分析,旨在优化服务器架构,提高网站服务的稳定性和效率,为大规模用户...
总结起来,“tomcat6+nginx1.8搭建的负载均衡”是一种有效的架构,它通过Nginx的反向代理和负载均衡功能,提升了基于Tomcat的Web应用的可用性和性能。这种组合可以满足中小型企业对高并发和高可用性的需求,同时也为...
Tomcat集群通常结合了Nginx作为反向代理和负载均衡器,Tomcat作为应用服务器,数据库服务器如MySQL存储业务数据,以及Redis作为缓存服务器。Nginx接收客户端请求,根据策略分发到后端的Tomcat实例,同时Redis可以...
结合两者,我们可以利用Nginx的高并发处理能力和Tomcat的Java应用支持,实现高效的服务架构。 负载均衡是一种将网络流量分布到多个服务器的技术,以避免单个服务器过载,提高系统的可用性和响应速度。Nginx可以通过...