http://tengine.taobao.org/book/index.html
我的测试环境是:windows7 32bit / jdk1.6 / tomcat6.0 /nginx 1.08
1、解压tomcat ,复制成2份,修改server.xml 里的端口设置,使得两个tomcat不冲突。请确保两个tomcat可以访问到你的应用:http://localhost:8080 和 http://localhost:8081
2、修改nginx 的配置(在conf/nginx.conf):
a.在 #gzip on; 下面添加下面代码
upstream backend {
server localhost:8080;
server localhost:8081;
#ip_hash; #这个好像是记录访问session的,同一session会发往同一个服务器处理,貌似这样,一开始我开启这个选项,我用浏览器狂刷新,一直访问的是第一个tomcat,后来我注释掉这行,于是访问被分散到了各tomcat中。
}
b.修改第一个 server{} 配置中的 listen 80; 改为新的端口号,如果有必要的话
并将:
location / {
root html;
index index.html index.htm;
}
修改为:
location / {
root html;
index index.html index.htm;
proxy_pass http://backend;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
如此即以通过最简单方式配置完成,启动nginx 和tomcat ,即可通过 nginx 访问后端的 tomcat 集群了。
nginx 在windows下双击,窗口一闪而过,但其实可能已经开启成功,可通过查看端口来检查或者通过访问nignix来验证。
也可在 cmd 里运行 nginx.exe 来启动,这样如果启动不成功,会有提示。
nginx 的关闭,cmd 中: nginx.exe -s stop
解决访问路径要加斜杠问题
location ~ ^/WEB {
#root html;
#index index.html index.htm;
proxy_pass http://backend;
proxy_redirect off;
proxy_set_header Host $host:89;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
}
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream bakend {
server 192.168.159.10 weight=10;
server 192.168.159.11 weight=10;
}
3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
upstream resinserver{
ip_hash;
server 192.168.159.10:8080;
server 192.168.159.11:8080;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream resinserver{
server server1;
server server2;
fair;
}
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
upstream resinserver{
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
tips:
upstream resinserver{#定义负载均衡设备的Ip及设备状态
ip_hash;
server 127.0.0.1:8000 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6801;
server 127.0.0.1:6802 backup;
}
在需要使用负载均衡的server中增加
proxy_pass http://resinserver/;
每个设备的状态设置为:
1.down 表示单前的server暂时不参与负载
2.weight 默认为1.weight越大,负载的权重就越大。
3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
nginx支持同时设置多组的负载均衡,用来给不用的server来使用。
client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug
client_body_temp_path 设置记录文件的目录 可以设置最多3层目录
location 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡
相关推荐
在构建高性能、高可用性的Web应用系统时,"nginx+tomcat7负载均衡+redis缓存session"是一种常见的架构模式。这种模式结合了Nginx的反向代理和负载均衡能力,Tomcat作为Java应用服务器处理业务逻辑,而Redis则用于...
Nginx+Tomcat负载均衡企业实战.docx 本文档主要介绍了 Nginx+Tomcat 负载均衡的企业实战,涵盖了从0开始构建 Nginx WEB 平台、Tomcat WEB 集群、代码发布、Nginx 负载均衡 Tomcat 集群、动静分离、Rewrite 实战等...
### Nginx-Tomcat整合实现JAVA程序负载均衡 #### 一、背景介绍与目标设定 随着互联网技术的发展,单一服务器往往难以满足高并发、大数据量处理的需求。因此,采用多服务器集群部署策略来提高系统的稳定性和响应...
在现代的Web服务器架构中,Nginx作为高性能的反向代理服务器和负载均衡器,常被用来与Tomcat等应用服务器配合使用,以提高网站的响应速度、稳定性和安全性。本文将详细解析在Linux环境下如何安装和配置Nginx与Tomcat...
这个实例涵盖了`nginx`与`tomcat`的整合、`nginx`的反向代理与负载均衡配置以及`tomcat`集群的设置。这样的架构有助于提高系统性能,当某个`tomcat`实例出现问题时,`nginx`能够自动将流量导向其他正常运行的实例,...
【Nginx 整合 Tomcat】是一种...Nginx整合Tomcat的整个过程涉及到服务器管理、网络配置、Java应用的部署以及性能优化等多个方面。理解这些知识点对于运维人员来说至关重要,能够帮助他们构建稳定且高效的Web服务环境。
通过以上步骤,我们可以构建一个在Windows上的Nginx+Memcached+Tomcat负载均衡系统,这个系统能够提供高可用性和高性能的服务,并通过缓存机制进一步提升响应速度。在实际应用中,可以根据需求调整服务器权重、缓存...
这个程序包“tomcat7+nginx+memcached”旨在实现通过Nginx进行负载均衡,以及利用Memcache来共享Tomcat服务器之间的Session数据。以下是关于这个集成方案的详细解释: 1. **Nginx**: - **功能**:Nginx是一款高...
- **负载均衡**:Nginx可以轻松实现负载均衡,将请求分发到多个Tomcat实例,提高系统的可用性和可靠性。 - **优化性能**:静态资源由Nginx直接处理,减少了Tomcat的负担,提升了响应速度。 - **安全增强**:Nginx...
这种组合通常用于优化性能和负载均衡,因为Nginx可以处理静态内容并分发动态请求到Tomcat。 **Nginx** Nginx以其高效的非阻塞I/O模型而著名,尤其在处理高并发请求时表现优秀。作为前端服务器,Nginx能够迅速响应...
#对 "/Dossm3RabbitMQConsumer/" 启用负载均衡 location /Dossm3RabbitMQConsumer/ { proxy_pass http://localhost:8086; #保留用户真实信息 proxy_set_header X-Real-IP $remote_addr; proxy_set_header ...
总结,构建Linux下Nginx+Memcached+Tomcat的负载均衡集群服务,需要深入了解每个组件的工作原理,正确配置和整合这些组件,以实现高效、稳定的Web服务。同时,不断优化和调整集群策略,以适应业务的增长和变化。
标题 "nginx+tomcat7+memcached集成 负载均衡初体验" 涉及的是一个常见的Web服务器和应用服务器的集成方案,用于提升网站性能和处理能力。在这个组合中,nginx作为前端反向代理服务器,负责负载均衡;Tomcat7是Java...
通过配置`nginx`,我们可以设置多个`tomcat`实例作为后端,当用户请求到达`nginx`时,它会根据配置策略决定将请求转发给哪个`tomcat`服务器,从而实现负载均衡。 其次,`tomcat`是Apache软件基金会的Java Servlet...
如果有多个Tomcat实例,可以通过Nginx实现负载均衡,配置 `upstream` 指令。 3. **安全考虑**: 考虑使用SSL/TLS进行加密传输,配置Nginx支持HTTPS。同时,确保Nginx和Tomcat的安全配置,限制不必要的端口访问。 ...
整合Nginx和Tomcat的目的是为了结合Nginx作为高性能的反向代理服务器和负载均衡器的能力,以及Tomcat作为应用服务器对Java应用的支持能力,实现Web服务器的高可用、高性能及易于维护的目的。 1. Linux操作系统下的...
这里我们关注的焦点是`ngnix`(通常写作Nginx)、`memcached`以及`tomcat6`之间的整合,用于实现会话管理与负载均衡。下面将详细介绍这些技术及其在该配置中的作用。 首先,`Nginx`是一个强大的反向代理服务器和...