• nginx 做负载均衡反向代理


    nginx 做反向代理时,后端主机有多台,可以使用 upstream 定义一个后端主机池,在反向代理时直接使用主机池的名字。在 upstream 中可以定义负载均衡调度算法,权重,健康状态检测等参数。

    例如:

    upstream backend {
     server 172.16.0.1:80 weight=1 max-fails=3 fail_timeout=10;
     server 172.16.0.2:80 weight=1max-fails=3 fail_timeout=10;;
    }

    默认请求下,使用 round-robin 调度算法,并有健康状态检查和恢复主机的能力。

    ningx 还可以使用这些算法:

    ip_hash:基于源地址哈希,主要目的是会话保持
    least_conn:基于最少活动连接进行调度
    sticky:基于 cookie 进行会话绑定,nginx 会在客户端第一次访问时插入路由信息到 cookie 中,或者选择 cookie 中的某个字段的值作为键,以后每次请求将基于此信息进行调度
    基于 cookie 的会话绑定共有 cookie,route 和 learn 三种。

    例如,基于 cookie name 的调度:

    upstream backend {
     server backend1.example.com;
     server backend2.example.com;
    
     sticky cookie srv_id expires=1h domain=.example.com path=/;
    }

    使用此主机组进行反向代理:

     
    location / {
     proxy_pass http://backend;
     proxy_set_header Host $host;
     proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
    }

    proxy_pass URL 指定代理的后端主机,可以指定 "http" 或 "https" 协议,域名可以是 ip 地址,也可以是 upstream 池名字

    如果代理指定的是一个 URI 地址,如 http://127.0.0.1/remote,那么将直接被代理至指定 URI,无论请求的 URI 是什么
    如果代理指定的一个主机而没有 URI,如 http://127.0.0.1,客户端请求的URI将被传递至指定域名
    如果 location 中使用模式匹配 url,那么 url 也会被传递至代理 URL 的末端
    如果 location 中使用了 URI 重写,那么 proxy_pass 会使用重写后的结果进行处理
    proxy_set_header HEADER VALUE 对转发的报文首部进行修改

    反向代理时的缓存相关设定

    proxy_cache_path PATH [levels=levels] keys_zone=NAME:SIZE

    定义磁盘缓存路径,nignx 的缓存是以键值方式存放的,keys_zone 用于指定键存放的内存空间名字和大小,对应的值则存放在 PATH 指定的路径中。levels 可以指定缓存存放路径的级数和名称字符数。此设置只能在 http 段中定义。

    如:

    proxy_cache_path /var/cache/nginx/proxy levels=1:2 keys_zone=one:10m;

    proxy_cache_valid [code ...] time 指定不同响应码的内容的缓存时间

    如:

    proxy_cache_valid 200 302 10m;
    proxy_cache_valid 404  1m;
    proxy_cache_valid any  1m;

    proxy_cache_method METHOD 定义哪些方法的请求结果可以被缓存,如:

    proxy_cache_method GET;
    proxy_cache_method HEAD;
  • 相关阅读:
    附加数据库 对于 服务器“00-PC”失败
    SQL 语句转换格式函数Cast、Convert
    sql语句:union
    ISNULL-sqlserver语句
    SQL中的CASE WHEN语句
    SQL SELECT INTO 语句
    Sql语句中IN等方面的用法
    combobox的不常用的方法和将txt文本内容加到textbox中显示
    程序员:“菜鸟”和“大神”差距在哪
    过劳死离我们有多远?
  • 原文地址:https://www.cnblogs.com/zhouj850/p/15803270.html
Copyright © 2020-2023  润新知