17、Nginx集群负载均衡

负载均衡

  • 新建3台Linux虚拟机 ip分别设为192.168.0.199、192.168.0.200、192.168.0.201和一台Nginx192.168.0.198

  • 在本地访问的电脑hosts文件中配置

    192.168.0.198 www.nginxdemo.com

  • nginx配置文件upstream

upstream nginxdemo{
        server 192.168.0.199:8080;
        server 192.168.0.200:8080;
        server 192.168.0.201:8080;
        keepalive    32; # 保持长连接 提高吞吐量 耗内存
    }
	
    server {
        listen       80;
        server_name  www.nginxdemo.com;

        location / {
          # proxy_pass传递到upstream 后面固定http:// upstream后面的名字
        	  proxy_pass    http://nginxdemo; 
        	  proxy_http_version 1.1; #keepalive配置
        	  proxy_set_header Connection "";#keepalive配置
        }
	}
  • 不配置策略默认使用轮询策略
  • 配置加权轮询
upstream nginxdemo{
        server 192.168.0.199:8080 weight=1; #weight 不写默认权重为1
        server 192.168.0.200:8080 weight=2;
        server 192.168.0.201:8080 weight=5;
}
  • upstream 指令参数:

    • max_conns 限制最大连接数 默认值0不限制 多个工作线程对应多个
    • slow_start 适用于有权重的负载均衡 一段时间后启动 慢慢启动 假如weight=10 slow_start会慢慢从1开始到10,不适用于单个服务器(商业版)
    • down 标志该服务器状态不可用
    • backup 备用机 只有在其他服务器全挂了才会被访问
    • max_fails 最大失败次数 达到最大 nginx会把服务器剔除 默认值1
    • fail_timeout 时间段 与max_fails配合使用 默认值15
      fail_timeout=15s;max_fails=2 代表15秒内达到2次失败则达成宕机条件,15秒后可继续请求如果fails则一直循环直到服务器正常
  • ip_hash模式 一个ip一直访问一台服务器 保证Session不会丢失。中途移除服务器只能用down来标志

upstream nginxdemo{
        ip_hash;
        server 192.168.0.199:8080;
        server 192.168.0.201:8080;
}
  • url hash模式
upstream nginxdemo{
        hash $request_uri;
        server 192.168.0.199:8080; 
        server 192.168.0.200:8080;
}
  • least_conn模式 哪台服务器上的连接数少就请求哪一台
upstream nginxdemo{
        least_conn;
        server 192.168.0.199:8080; 
        server 192.168.0.200:8080;
}
缓存
  • expires 指令 针对客户浏览器
    • expires [time] 过期时间
      location / {expires 10s;}
    • expires @[time] 到晚上22点30分时间过期
      location / {expires @22h30m;}
    • expires -[time] 缓存提前过起
    • expires epoch 不设置缓存 no-cache
    • expires off 默认值 不使用nginx缓存机制
    • expires max 永不过期
  • 上游服务器缓存
#proxy_cache_path 设置缓存保存的目录 开辟5M共享内存空间 max_sizes设置缓存大小,inactive超过30s缓存自动清理,use_temp_path关闭临时目录
proxy_cache_path /usr/local/nginx/upstrean_cache keys_zone=mycache:5m max_size=1g inactive=30s use_temp_path=off;
server {
    listen       80;
    server_name  www.nginxdemo.com;
    proxy_cache mycache; #开启缓存
    #针对200 和 304的状态码过期时间设置成8小时
    proxy_cache_valid   200 304 8h;
    location / {
    	  proxy_pass    http://nginxdemo; 
    }

常见CentOS配置问题
  • 虚拟机centos出现no package ifconfig available
    yum install net-tools.x86_64
  • 网络默认是共享网络 改成wifi
  • PD版本虚拟机固定ip配置修改/etc/sysconfig/network-scripts/下面的网络配置文件ifcfg-eth0(名字可能不一样)
DEVICE="eth0"
IPV6INIT="yes"
BOOTPROTO="static" # 这个改成static 默认是dhcp
UUID="1b29923b-7898-4abb-ba15-e70d645b0433"
ONBOOT="yes" # 这个yes
IPADDR=192.168.0.201 # ip地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.0.1 #网关
DNS1=192.168.0.1 # DNS 与网关一致
  • service network restart 重启生效
  • 关闭防火墙 systemctl stop firewalld.service(暂时关闭) systemctl disable firewalld.service(关闭后使用永久关闭)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值