nginx

反向代理

正向代理:客户端向目标服务器发送请求,该请求被代理服务器拦截,由代理服务器向目标服务器发送请求,并将请求结果返回给客户端。客户端需配置代理服务器,代理的是客户端的请求。

eg:翻墙

反向代理:客户端向代理服务器发送请求,代理服务器根据策略将请求发给后台服务器,并将后台服务器返回结果发给客户端。反向代理服务器对客户端来说是透明的,客户端不需配置代理服务器,代理的是后台服务器

负载均衡

  • 轮询(默认)

    1
    2
    3
    4
    upstream bakend {  
    server 192.168.0.14;
    server 192.168.0.15;
    }

    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

  • weight

    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

    1
    2
    3
    4
    upstream bakend {  
    server 192.168.0.14 weight=1;
    server 192.168.0.15 weight=10;
    }
  • ip_hash

    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以不用考虑分布式session的问题。

    1
    2
    3
    4
    5
    upstream bakend {  
    ip_hash;
    server 192.168.0.14:88;
    server 192.168.0.15:80;
    }
  • fair(第三方)

    按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    1
    2
    3
    4
    5
    upstream bakend {  
    server 192.168.0.14:88;
    server 192.168.0.15:80;
    fair;
    }

动静分离

动态资源(jsp、servlet)和静态资源(html、image)放在不同服务器

高可用并发集群

设置主从服务器,利用keepalived,主服务器down掉,启用从服务器

常用命令

  1. nginx安装目录:/usr/local/nginx

    配置文件:/usr/local/nginx/conf/nginx.conf

    启动文件:/usr/local/nginx/sbin/nginx

  2. 启动 /usr/local/nginx/sbin/nginx

  3. 停止 /usr/local/nginx/sbin/nginx -s stop

  4. /usr/local/nginx/sbin/nginx -s reload