主页 > 知识库 > 详解使用Go添加Nginx代理的方法示例

详解使用Go添加Nginx代理的方法示例

热门标签:学海导航地图标注 广州呼叫中心外呼系统 江西转化率高的羿智云外呼系统 浙江高速公路地图标注 中国地图标注省会高清 南通如皋申请开通400电话 西部云谷一期地图标注 高德地图标注口诀 地图标注的汽车标

简介

Nginx 是一个高性能的 HTTP 服务器和反向代理服务器.

最常用的两个功能是反向代理和负载均衡.

反向代理

反向代理是正向代理的反面.

普通的代理服务器是需要用户主动去设置的, 用户在自己的电脑上设置并连接代理服务器,
从而可以隐藏自己的 IP, 使得应用服务器不知道客户端的 IP 地址.

而反向代理是作为应用服务器的代理, 安装在服务器上. 客户端实际上访问的反向代理服务器,
反向代理服务器再去访问实际的应用服务器, 然后将获取到的响应传送给客户端.

使用 Nginx 配置反向代理非常简单, 基础配置如下:

upstream web {
 server 127.0.0.1:8081;
}

server {
 listen 80;
 server_name web.coolcat.com;

 location / {
  proxy_set_header Host $http_host;
  proxy_set_header X-Forwarded-Host $http_host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Real-IP $remote_addr;

  client_max_body_size 5m;

  proxy_pass http://web;
 }
}

上面的配置文件中设置了一个域名 web.coolcat.com,
对这个域名的所有请求都会转发到 http://web 上.

通过配置 upstream, 我们可以发现, 实际上的流量都被转发到了
127.0.0.1:8081 上了.

如此一来, 就实现了反向代理.

负载均衡

负载均衡和反向代理是分不开的, 负载均衡通常都是基于反向代理做的.

所谓的负载均衡, 指的是将多个请求转发到不同的后端服务器上.

upstream web {
 server 127.0.0.1:8081;
}

在上面的反向代理配置中, 只设置了一个后端服务器地址,
如果再添加几个, 就实现了最简单的负载均衡了.

轮询

轮询策略按顺序分配请求.

upstream web {
 server 192.168.1.1:8081;
 server 192.168.1.2:8081;
}

加权轮询

加权策略按比例分配请求.

upstream web {
 server 192.168.1.1:8081 weight=4;
 server 192.168.1.2:8081 weight=6;
}

上面的两个服务器的访问概率就是四六开.

最少连接

最少连接将请求分配给当前连接数最少的服务器.

upstream web {
 least_conn;
 server 192.168.1.1:8081;
 server 192.168.1.2:8081;
}

ip_hash

来自同一个 IP 的连接都会分配给同一个服务器, 通常用于 会话保持.

upstream web {
 ip_hash;
 server 192.168.1.1:8081;
 server 192.168.1.2:8081;
}

通用 hash

使用 hash 自定义要计算的 key. 示例中使用请求地址.
可以选择 consistent 参数可以指定使用一致性哈希算法.

upstream web {
 hash $request_uri;
 # hash $request_uri consistent;
 server 192.168.1.1:8081;
 server 192.168.1.2:8081;
}

参考:

Using nginx as HTTP load balancer

Module ngx_http_upstream_module

总结

Nginx 是很常用的代理服务器, 它的功能非常强大, 性能也很好.
更多的资料请参考官方文档.

当前部分的代码

作为版本v0.14.0

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • 通过nginx反向代理来调试代码的实现
  • Docker中使用Nginx代理多个应用站点的方法
  • Nginx正反向代理及负载均衡等功能实现配置代码实例
  • 通过Nginx代理转发配置实现跨域的方法(API代理转发)
  • 添加Nginx代理配置只允许内部IP访问的实现方法
  • Nginx代理proxy pass配置去除前缀的实现
  • 18个运维必知的Nginx代理缓存配置技巧(你都掌握了哪些呢)
  • Nginx正向反向代理区别及原理解析

标签:庆阳 太原 广西 调研邀请 西双版纳 阿克苏 贵阳 德州

巨人网络通讯声明:本文标题《详解使用Go添加Nginx代理的方法示例》,本文关键词  详解,使用,添加,Nginx,代理,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《详解使用Go添加Nginx代理的方法示例》相关的同类信息!
  • 本页收集关于详解使用Go添加Nginx代理的方法示例的相关信息资讯供网民参考!
  • 推荐文章