Nginx负载均衡配置

Nginx负载均衡配置

一、Nginx操作命令

start nginx : 启动nginx

nginx -s reload :修改配置后重新加载生效

nginx -s reopen :重新打开日志文件

nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确

关闭nginx:

nginx -s stop : 快速停止nginx

nginx -s quit :完整有序的停止nginx

二、启动各tomcat服务器上的服务

# 启动服务
./bin/startup.sh
#  监听日志
tail -f ./logs/catalina.out

三、修改配置文件

# Nginx安装目录下
cd conf/
vim nginx.conf
  • server{ }上方添加
#  upstream是关键字,不可修改
#  www_server_pool是自定义名称
#  server是关键字,不可修改
#  weight=1 weight代表权重,数值越大分配的请求就越多
    upstream www_server_pool {
    server 10.0.0.5;   #<==这一行标签和下一行是等价的
    server 10.0.0.6:80 weight=3 max_fails=1 fails_timeout=10s; #<==此行标签为默认配置
    server 10.0.0.7:80 weight=2 max_fails=2  fails_timeout=10s backup;
    server 10.0.0.8:80 weight=1 max_fails=3 fails_timeout=20s backup;
}
  • server{ }中修改location / {}
    upstream www_server_pool {
    server 10.0.0.5;   #<==这一行标签和下一行是等价的
    server 10.0.0.6:80 weight=3 max_fails=1 fails_timeout=10s; #<==此行标签为默认配置
    server 10.0.0.7:80 weight=2 max_fails=2  fails_timeout=10s backup;# backup 备份服务器
    server 10.0.0.8:80 weight=1 max_fails=3 fails_timeout=20s backup;

}
 server {
    listen 80;
    server_name www_server_pools;
        location / {
            proxy_pass http://www_server_pools;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_redirect default;
            proxy_buffer_size 512k;
            proxy_buffers 6 512k;
            proxy_busy_buffers_size 512k;
            proxy_temp_file_write_size 512k;
            client_max_body_size 100m;
        }
}

四、加载配置文件启动

#nginx/sbin目录下
./nginx -c /usr/nginx/conf/nginx.conf

五、报错解决

  • 启动报错
[root@wNginx sbin]# ./nginx -c /usr/nginx/conf/nginx.conf
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()

  • 使用nginx -s stop 后停止服务,相关进程仍然存在
  • kill掉服务
[root@Nginx sbin]# ps aux|grep nginx
root      12669  0.0  0.0  20572   392 ?        Ss   12:44   0:00 nginx: master process ./nginx
nobody    12671  0.0  0.0  23100  1372 ?        S    12:44   0:00 nginx: worker process
root      17943  0.0  0.0 112824   980 pts/0    R+   17:28   0:00 grep --color=auto nginx
[root@Nginx sbin]# kill 12669
[root@Nginx sbin]# kill 12671
bash: kill: (12671) - 没有那个进程
[root@Nginx sbin]# ps aux|grep nginx
root      17964  0.0  0.0 112824   980 pts/0    S+   17:29   0:00 grep --color=auto nginx
[root@Nginx sbin]# ./nginx -c /usr/nginx/conf/nginx.conf

  • 成功启动

六、修改tomcat服务器上的index.jsp

  • 编辑tomcat服务器上的index.jsp
vim ./webapps/ROOT/index.jsp
  • 修改tomcat服务器上的index.jsp区分服务
<h1>1
  • 其他tomcat服务器同样修改

七、均衡负载策略

1.轮询

 upstream www_server_pool {
   server 10.0.0.5;  
   server 10.0.0.6:80;
   server 10.0.0.7:80;
   server 10.0.0.8:80 ;

}

2.weight权重

   upstream www_server_pool {
    server 10.0.0.5;   #<==这一行标签和下一行是等价的
    server 10.0.0.6:80 weight=3 max_fails=1 fails_timeout=10s; #<==此行标签为默认配置
    server 10.0.0.7:80 weight=2 max_fails=2  fails_timeout=10s backup;
    server 10.0.0.8:80 weight=1 max_fails=3 fails_timeout=20s backup;

}

3.ip_hash

  • 此时访问的tomcat服务同客户端IP绑定,解决session共享问题,宕机后无法解决session共享问题
   upstream www_server_pool {
    ip_hash;
    server 10.0.0.5;  
    server 10.0.0.6:80;
    server 10.0.0.7:80;
    server 10.0.0.8:80 ;

}

4.least_conn

  • 动态将请求转发给请求较少的服务器
   upstream www_server_pool {
    least_conn;
    server 10.0.0.5;  
    server 10.0.0.6:80;
    server 10.0.0.7:80;
    server 10.0.0.8:80 ;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值