一、安装好nginx环境,启动至少两个的tomcat服务;
此处tomcat访问地址为:http://192.168.106.128:1000/、http://192.168.106.128:1001/、http://192.168.106.128:1002/
二、修改nginx配置文件:
[root ~]# cd /usr/local/nginx/conf
[root conf]# ls fastcgi.conf fastcgi.conf.default fastcgi_params fastcgi_params.default koi-utf koi-win mime.types mime.types.default nginx.conf nginx.conf.default scgi_params scgi_params.default uwsgi_params uwsgi_params.default win-utf [root conf]# vim nginx.conf
#gzip on;
upstream bakend { server 192.168.106.128:1000 weight=10; server 192.168.106.128:1001 weight=10; server 192.168.106.128:1002 weight=10; }server {
listen 80; server_name localhost;#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://bakend; #root html; #index index.html index.htm; }
新增upstream 配置,后面的“server_tomcat”相当于该配置别名,供后面的“proxy_pass”配置使用。
upstream 里面配置的就是2个tomcat的访问地址,IP:端口号,不用写http:// 。
proxy_pass 转发定位到upstream 里面配置的多台服务器proxy_pass 配置的http:// 必须要写。
修改完成后,重新加载nginx服务的配置,访问系统IP:
./nginx -s reload
每次刷新页面,nginx代理都会转发不同的服务器,两台两台服务器被访问的概率一样,实现了负载均衡。
当有台服务器挂掉了,nginx默认不会访问挂掉的服务,继续访问其他正在运行的服务,提供了很好的容错机制。
upstream目前支持5种方式的分配
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。weight 默认为1.weight越大,负载的权重就越大。
例如:upstream bakend {
server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; }
3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 例如:upstream bakend {
ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; }
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。upstream backend {
server server1; server server2; fair; }