Nginx服务变量传递

Nginx 是一款轻量级的 Web 服务器和反向代理服务器!

Nginx 是什么 "engine x" 是一个开源的,支持高性能、高并发的 Web 服务和代理服务软件。它是由俄罗斯人 Igor Sysoev 开发的,作者将源代码以类 BSD 许可的形式开源出来供全球使用。

Nginx服务变量传递 - HEADER的定义

1. 代理服务设置

介绍多层代理设置来获取用户信息的方式!

当我们部署服务的时候,因为某种或者某些原因导致需要部署多个 Nginx 服务进行工作(负责处理不同的问题)。这样就会出现一个问题,后置的 Nginx 服务如何获取到用户访问的 IP 地址呢? 可能到这里,你已经想到了使用 Header 进行变量传递,将用户真实访问地址,间接的传递给后端服务,从而获取到对应地址。这时,需要我们在 Nginx 的配置文件 nginx.conf 中添加如下配置。

  • Host $http_host
    • 包含客户端的域名和端口号
  • X-Forwarded-Proto $scheme
    • 表示客户端真实的协议(http还是https)
  • X-Real-IP $remote_addr
    • 表示客户端真实的 IP 地址
  • X-Forwarded-For $proxy_add_x_forwarded_for
    • 这个 Header 和X-Real-IP类似
    • 但它在多层代理时会包含真实客户端及中间每个代理服务器的 IP 地址