Nginx 服务代理功能介绍

2015-07-27 0 By admin

Nginx 代理功能通常用于
1、多核心服务器负载均衡
2、将http协议以外的请求传输给处理服务器(php-fpm)

  1. 不同协议的代理
  2. 修改并发送请求头到Upstream上游
  3. 设置Upstream上游响应数据的缓冲

1、传输请求至后端服务器

代理服务器接受客户端请求,将请求发送到后端服务器,接受后端服务器响应,传输给客户端。
向后端传输请求时,可以使用指定的协议:
http:后端是一个nginx或一个接受http协议的服务;指令proxy_pass
non-http:使用特定框架开发的程序;协议有FastCGI,uwsgi,SCGI和memcached。指令:fastcgi_pass,uwsgi_pass,scgi_pass,memcached_pass

2、传输请求头header

默认情况下;代理服务器重新定义了头信息中的Host和Connection这两个字段,并消除了其值为空字符串的头字段。
Host 设置为 $proxy_host,Connection 设置为 close;更改头信息使用proxy_set_header指令。

3、Nginx 配置缓冲功能

默认情况下,nginx代理缓冲从上游服务器传输的响应数据,直到收到整个响应信息;并不会直接发送给客户端。
缓冲功能开启的好处是节约了传输建立的时间。

没有开启缓冲;如果客户端网络比较慢,将会建立很长时间的完整连接。
开始缓冲:核心服务器可以快速处理响应,而代理服务器缓冲数据时间和客户端下载数据时间相同。

proxy_buffers:设置一个请求的响应的数据 在代理服务器缓存的缓存区大小和数量。
proxy_buffer_size:设置响应数据第一部分应答信息的缓存区大小;这里保存用户的头信息
proxy_buffering:是否开启缓冲

4、Nginx 代理绑定IP

当代理服务器存在多个IP时,有时需要选择特定的ip来连接Uptream服务器。
命令:proxy_bind