准备两个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
反向代理
- 配置location
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8081;
}
}
- 重启nginx
- 访问结果
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;
负载均衡
- 配置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; #备用服务,所有结点挂掉之后启用
}
- 配置location
server {
listen 80;
server_name www.lzj.com;
location / {
proxy_pass http://backend;
}
}
- 访问结果
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:最小的响应时间,计算节点平均响应时间,然后取响应最快的那个,分配更高权重(第三方)
第三方表示需要加入第三方模块