nginx 核心应用和配置

来源:互联网 发布:极客邦科技软件 编辑:程序博客网 时间:2024/05/16 13:54

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;       }}
原创粉丝点击