nginx 核心应用和配置

nginx 负载均衡的配置主要用的是upstream_module。

官方文档:http://nginx.org/en/docs/http/ngx_http_upstream_module.html

Nginx 请求执行过程分析
这里写图片描述

location 相关参数与配置

root                #站点根路径
index               #首页
proxy_pass           # 代理服务
proxy_redirect off;   # 是否允许重定向
proxy_set_header Host $host; # 传 header 参数至后端服务
proxy_set_header X-Forwarded-For $remote_addr;
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 dynamic {  //upstream 名称
    zone upstream_dynamic 64k;

    server backend1.example.com      weight=5;   //权重
    server backend2.example.com:8080 fail_timeout=5s slow_start=30s; //fail_timeout踢出后,重新探测时间;slow_start当节点恢复,不立即加入过30s之后再启用
    server 192.0.2.1                 max_fails=3;  //失败多少次认为主机已挂掉,踢出
    server backend3.example.com      resolve;
    server backend4.example.com      service=http resolve;

    server backup1.example.com:8080  backup;  //备用的服务1
    server backup2.example.com:8080  backup;  //备用的服务2
}

server {
    location / {
        proxy_pass http://dynamic;
        health_check;
    }
}

upstream 参数

service        反向服务地址 加端口
weight        权重
max_fails =1     失败多少次 认为主机已挂掉则,踢出
fail_timeout        踢出后重新探测时间
backup        备用服务
max_conns        允许最大连接数
slow_start        当节点恢复,不立即加入

nginx 负载算法

算法释义
ll + weight默认的是轮询+权重
ip_hash给予hash计算,用户保持session一致性
url_hash:(第三方) 应用场景:静态资源缓存,节约存储,加快速度
least_conn最少链接
least_time最小的响应时间,计算节点平均响应时间,然后取响应最快的那个,分配更高权重。



Nginx 应用实战



动静分离实现

有三种方案可以实现动静分离
基于目录实现
基于正则表达示判断文件后缀实现

动静分离配置

location \ {
       proxy_pass http://tl_dynamic;
}
location ~ \.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {
       proxy_pass http://tl_static;
}

防盗链实现

location ~* \.(gif|png|jpg|swf|flv)$    {
          root html;
          valid_referers none blocked *.tl.com;
          if ($invalid_referer) {
              rewrite ^/  http://www.tl.com/image/403.png;
              #return 404;
      }
}

城市静态站点实现

server {
        listen       80;
        server_name  *.tl.com;
        root /data/www/$host;
        access_log  logs/$host.access.log;
        location / {
         index  index.html;
       }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值