Nginx占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用Nginx网站用户有:新浪,网易,腾讯等.
本文主要是基于Nginx搭建tomcat集群.
环境:
Win8.1,JDK 1.6 , Nginx1.9.3
Tomcat 7.0.63(两个tomcat服务器)
结构:
upstreamlocahost{ #ip_hash; server192.168.24.17:8080 weight=1; server192.168.24.43:8080 weight=2; }
反向代理:对于客户端而言,它就像是演示服务器,并且客户端不需要进行任何特别的设置.客户端反向代理的命名空间中的内容发送普通请求,接着反向代理将判断向何处转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样.前面博客:Nginx是什么?里面介绍了.
upstream192.168.24.17{ #ip_hash; server192.168.24.17:8080 weight=1; server192.168.24.43:8080 weight=2; } #gzip on; server { listen 8888; server_name 192.168.24.17; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; proxy_pass http://192.168.24.17; proxy_connect_timeout1; proxy_send_timeout30; proxy_read_timeout60; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }
a.Weight:权重,值越大,命中率越高
b.上面标红的地方:192.168.24.17,这三处要一致才能实现负载均衡的效果.
说明:这个IP以及端口号是nginx设置的名称以及端口号.访问后能分别调用到后端不同的服务器.实现负载均衡效果.进一步可以看出本实例使用的是轮询的方式,也就是负载均衡默认的方式.
upstream是Nginx的HTTP Upstream模块,这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡.在上面的设定中,听过upstream指令指定了一个负载均衡的名称为192.168.24.17.这个名称可以任意指定,在后面需要用到的地方直接调用即可.
Nginx的负载均衡模块目前支持4种调度算法.
在HTTP Upstream模块汇总,可以通过server指令指定后端服务器的IP地址和端口,同时还可以设定每个后端服务器在负载均衡调度中的状态.常用的状态有:
注:当负载调度算法为ip_hash时,后端服务器在负载均衡调度中的状态不能使weight和backup.
通过这种方式,当我们的网站访问量越来越大时,我们就能承受更多的压力,并且能够动态的添加服务器.配置负载均衡很简单,那么如何实现多台服务器之间session的共享呢?下篇继续介绍.
注意:nginx放到中文目录下,启动时会有问题.
打印出来的日志:
[emerg] 10744#10916: CreateFile()"E:\02 Java内容学习汇总\Nginx\nginx-1.4.7/conf/nginx.conf"failed (1113: No mapping for the Unicode character exists in the targetmulti-byte code page)