nginx-三种反向代理


很多应用服务的运行效率是很低的,QPS,TPS,并发等都是受限的,所以需要把很多应用服务组成一个集群,向用户提供高可用性的服务,这个时候需要 Nginx 的反向代理功能,而应用服务的动态扩容需要负载均衡功能,另外一个,Nginx 层还需要做缓存。

因此反向代理服务主要是三个功能:

  • 反向代理
  • 负载均衡
  • 缓存

基于IP

# 基于IP代理
server {
  listen       80;
  server_name  localhost;
  location / {
    proxy_pass http://10.17.0.2;
    proxy_redirect default;
  }
  location = /50x.html {
    root   html;
  }
}

基于端口

# 基于端口代理
server {
  listen       81;
  server_name  localhost;
  location / {
    proxy_pass http://10.17.0.3:10102;
    proxy_redirect default;
  }
  location = /50x.html {
    root   html;
  }
}

server {
  listen       82;
  server_name  localhost;
  location / {
    proxy_pass https://blog.darebeat.cn;
    proxy_redirect default;
  }
  location = /50x.html {
    root   html;
  }
}

基于域名代理

# 基于域名代理 + 负载均衡
upstream darebeat{
    ip_hash;
  server 10.17.0.3:10102;
  server 10.17.0.4:10102;
  server 10.17.0.5:10102;
}

upstream blog{
  server blog.darebeat.cn;
}

server {
  listen       80;
  server_name  darebeat.cn;
  location / {
    proxy_pass http://darebeat;
    proxy_redirect default;
  }
  location = /50x.html {
    root   html;
  }
}
server {
  listen       80;
  server_name  blog.darebeat.cn;
  location / {
    proxy_pass http://blog;
    proxy_redirect default;
  }
  location = /50x.html {
    root   html;
  }
}

负载均衡

分发策略

  • 轮询: 1:1 轮流处理请求(默认)
  • 权重: weight=3 分配比重
  • ip绑定_哈希算法

配置参数说明

down 表示单前的server暂时不参与负载
weight 默认为1.weight越大,负载的权重就越大
max_fails 允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout max_fails 次失败后,暂停的时间
backup 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻


文章作者: darebeat
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 darebeat !
 上一篇
ginx-原理和架构 ginx-原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP服务器和反向代理,以及IMAP/POP3代理服务器;Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。
2020-11-18
下一篇 
Markdown语法汇总 Markdown语法汇总
Markdown是一种轻量标记语言,通过简单的语法,使普通文本具有一定的格式;通过文本写出你想要的文字和排版,为用户提供了超高效的沉浸式写作体验。
2020-11-17
  目录