Nginx

Nginx 请求过程讲解

Nginx 服务搭建
  1. #=================环境安装
  1. yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
  1. #=================pcre 安装
  1. tar zxvf pcre-8.35.tar.gz
  1. ./configure
  1. make && make install
  1. pcre-config --prefix
  1. #=================nginx 安装
  1. tar zxvf nginx-1.6.2.tar
  1. ../configure --prefix=/root/svr/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
  1. make && make install 
  1. cd /root/svr/nginx
  1. ./sbin/nginx -t
  1. #===========模块添加
 
可能出现的错误
error while loading shared libraries: libpcre.so.1
解决办法:添加软链接
ln -s /usr/local/lib/libpcre.so.1 /lib64
 
 
负载均衡基础演示
  • 搭建演示环境,两个WEB服务
  • 配置 upstream
  • 配置 proxy_pass
  • 演示负载均衡
Nginx 请求执行过程分析
 
 
location 相关参数与配置 
  1. root                #站点根路径
  1. index               #首页
  1. proxy_pass           # 代理服务
  1. proxy_redirect off;   # 是否允许重定向
  1. proxy_set_header Host $host; # 传 header 参数至后端服务
  1. proxy_set_header X-Forwarded-For $remote_addr;
  1. proxy_connect_timeout 90; # 连接代理服务超时时间
  1. proxy_send_timeout 90; # 请求发送最大时间
  1. proxy_read_timeout 90;  # 读取最大时间
  1. proxy_buffer_size 4k; 
  1. proxy_buffers 4 32k;
  1. proxy_busy_buffers_size 64k; 
  1. proxy_temp_file_write_size 64k;
 
upstream 参数
  1. service        反向服务地址 加端口
  1. weight        权重
  1. max_fails =1     失败多少次 认为主机已挂掉则,踢出
  1. fail_timeout        踢出后重新探测时间
  1. backup        备用服务
  1. max_conns        允许最大连接数
  1. slow_start        当节点恢复,不立即加入
 
Nginx 负载算法讲解

ll+weight: 默认的负载算法 (轮询加权重)
ip_hash 基于Hash 计算 ,用于保持session 一至性
url_hash: 态资源缓存,节约存储,加快速度(第三方)
least_conn :最少链接
least_time  :最小的响应时间,计算节点平均响应时间,然后取响应最快的那个,分配更高权重。
 
 
Nginx 应用实战

动静分离实现
static.tl.com/
 
有三种方案可以实现动静分离
  1. 基于目录实现
  1. 基于正则表达示判断文件后缀实现
 
正则表达示实现
  • 配置tl_dynamic  upstream
  • 配置 tl_static upstream
  • 配置 默认访问dynamic  location
  • 配置 静态资源访问 static location
  • 重启服务
动静分离配置
  1.  location \ {
  1.              proxy_pass http://tl_dynamic;
  1.   }
  1.  location ~ \.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {
  1.              proxy_pass http://tl_static;
  1.   }
 
 
防盗链实现
  1. location ~* \.(gif|png|jpg|swf|flv)$    {
  1.             root html;
  1.              valid_referers none blocked *.tl.com;
  1.              if ($invalid_referer) {
  1.                 rewrite ^/  http://www.tl.com/image/403.png;
  1.                   #return 404;
  1.         }
  1. }
 
城市静态站点实现
  1.  server {
  1.            listen       80;
  1.            server_name  *.tl.com;
  1.            root /data/www/$host;
  1.            access_log  logs/$host.access.log;
  1.            location / {
  1.             index  index.html;
  1.           }
  1. }
posted @ 2017-12-06 21:06  Mr_陈  阅读(96)  评论(0)    收藏  举报