准备两个tomcat结点

root@ubuntu:~# curl 127.0.0.1:8081
this is  8081 tomcat
root@ubuntu:~# curl 127.0.0.1:8082
this is 8082 tomcat

反向代理

  1. 配置location
server {
		listen 80;
		server_name localhost;
		location / {
			proxy_pass http://127.0.0.1:8081;
		}
	}
  1. 重启nginx
  2. 访问结果
root@ubuntu:/usr/local/nginx# curl 127.0.0.1
this is  8081 tomcat

代理相关参数:

proxy_pass           # 代理服务
proxy_redirect off;   # 是否允许重定向
proxy_set_header Host $host; # 传 header 参数至后端服务
proxy_set_header X-Forwarded-For $remote_addr; # 设置request header 即客户端IP 地址
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;

负载均衡

  1. 配置upstream
 upstream backend {
	#ip_hash #负载均衡算法
        server 127.0.0.1:8081 weight=1;
        server 127.0.0.1:8082 weight=2;
	server 127.0.0.1:8083 backup; #备用服务,所有结点挂掉之后启用
 } 
  1. 配置location
server {
        listen 80;
        server_name  www.lzj.com;
        location / {
            proxy_pass http://backend;
        }
    }
  1. 访问结果
root@ubuntu:/usr/local/nginx# curl 127.0.0.1
this is  8081 tomcat
root@ubuntu:/usr/local/nginx# curl 127.0.0.1
this is 8082 tomcat
root@ubuntu:/usr/local/nginx# curl 127.0.0.1
this is 8082 tomcat

upstream 相关参数:

  • server 反向服务地址 加端口
  • weight 权重
  • max_fails 失败超过多少次,则认为主机已挂掉,将主机踢出
  • fail_timeout 踢出后重新探测时间
  • backup 备用服务
  • max_conns 允许最大连接数
  • slow_start 缓慢启用,当节点恢复,不立即加入,而是等待slow_start(秒)后加入服务对列。

upstream 负载均衡算法介绍**

  • ll+weight: 轮询加权重 (默认)
  • ip_hash:  基于Hash 计算 ,用于保持session 一至性
  • url_hash:  静态资源缓存,节约存储,加快速度(第三方)
  • least_conn:最少链接(第三方)
  • least_time:最小的响应时间,计算节点平均响应时间,然后取响应最快的那个,分配更高权重(第三方)

第三方表示需要加入第三方模块