本文主要讲如何通过nginx建立内网tomcat7的负载均衡服务。
先看个简单的nginx转发的例子:访问nginx的80端口时,转发到192.168.1.101:8080。
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://192.168.1.101:8080; //局域网内的一个应用
proxy_redirect off;
proxy_set_header Host $host; //主机名
proxy_set_header X-Real-IP $remote_addr; //remote_addr真实的访问者IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; //传入的X-Forwarded-For header
}
其他省略...
}
如果服务压力大,我们会通常建立负载均衡服务器,也就是nginx做入口,nginx把请求转发到多个真实的处理服务器上。这里需要引入一个ngxin的概念,upstream;那么如何建立一个负载均衡服务器呢?配置如下:
upstream pool { //upstream就是资源池的概念。
server 192.168.1.101:8081;
server 192.168.1.101:8080;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://pool ; //这里的转发修改为池
proxy_redirect off;
proxy_set_header Host $host; //主机名
proxy_set_header X-Real-IP $remote_addr; //remote_addr真实的访问者IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; //传入的X-Forwarded-For header
}
其他省略...
}
这里访问http://nginx/服务时,实际上会由http://192.168.1.101:8081/与http://192.168.1.101:8080/ 两个池中的资源进行详细的业务处理。但是大家可能遇到一个问题:配置为资源池后,会出现nginx服务无法正常访问的问题。这个问题会出现在tomcat原始服务器绑定在内网IP上的应用上。
----------------------------------------------------------解决方案-----------------------------------------------------
查看192.168.1.101:8081对应的tomcat的conf下的server.xml配置。
<Engine name="Catalina" defaultHost="192.168.1.101"> //这里原始配置为localhost,修改为绑定host-name
//中间采用原来的..............
<Host name="192.168.1.101" appBase="webapps" //这里配置ip,则此tomcat的webapps下面的资源只会通过此ip进行访问
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
--修改后,重启tomcat后,再测试nginx访问就可以正常的访问了!
相关推荐
windows下nginx+tomcat负载整合完整实例
Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。 Igor 将源代码以类 BSD 许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、丰富的功能...
Nginx+KeepAlived+Tomcat负载架构 这个可以实现tomcat集群,并且可以使服务器主备机进行切换。如果其中一台机器当机,会自动切换到另一台机器。客服端感受不到服务器当掉。非常实用。
nginx+redis+tomcat分布式负载均衡遇到问题解决文档;部署nginx、redis、tomcat时出现的一些常见问题解决方式 ex:Nginx启动错误:error while loading shared libraries: libpcre.so.1
nginx+tomcat7负载均衡+redis缓存session
解压后启动tomcat,nginx服务器,输入localhost:8888即可运行
使用redis,解决在nginx负载下tomcat6多节点共享session问题
Nginx+tomcat配置集群负载均衡实现动静分离实例
linux下Nginx+tomcat整合的安装与配置
Nginx+keepalived+tomcat实现性负载均衡
集群搭建,负载均衡,通过开元工具nginx 实现负载的均衡,
Maven Spring(IOC DI AOP 声明式事务处理) SpringMVC(支持Restful风格) ...Nginx静态加载、负载均衡 基于keepalived的nginx高可用方案 Tomcat集群(Redis共享Session) Sping Shiro权限控制(待完善)
最近学习Nginx+tomcat实现 负载均衡。 首先大家注意: 本文章中没有session共享,关于session共享我会在下一篇中讲解,先实现Nginx+tomcat负载均衡再实现session共享。 从网上查了好多资料,多走了很多弯路,现在把...
这个是pdf文档,讲授nginx和tomcat整合的方法!
nginx整合tomcat 1、准备软件(存放在目录/home/sofeware下) agentzh-headers-more-nginx-module-v0.15rc2-0-g2c629de.tar.gz #支持隐藏头部信息 (不是必须,觉得需要就安装吧) nginx-upstream-jvm-route-0.1.tar....
Nginx+Tomcat 搭建负载均衡三分钟搞定!!!!!!!!
Nginx+keepalived+tomcat实现性负载均衡
Nginx+Tomcat负载均衡解决方案,当前信息系统的应用范围越来越广泛,我们的信息系统从开始的只需向少量用户提供服务,到现在越来越频繁的需要应对大量用户同时在线,系统高并发的情况也越来越常见,并且对系统的稳定...
nginx_tomcat8_redis负载均衡demo
nginx windows tomcat8负载均衡