代理做事器的基本配置目录

代理做事器先容将要求通报给代理的做事器通报要求标头配置缓冲区选择传出IP地址1. 代理做事器先容

代理常日用于在多个做事器之间分配负载,无缝地显示来自不同网站的内容,或者通过HTTP以外的协议将要求通报给运用做事器。

2. 将要求通报给代理的做事器

当NGINX代理要求时,它将要求发送到指定的代理做事器,获取相应,并将其发送回客户端。
可以利用指定的协议将要求代理到HTTP做事器(另一个NGINX做事器或任何其他做事器)或非HTTP做事器。

php反向代理详解 Nginx反向署理|附参数介绍 Python

要将要求通报给HTTP代理做事器,则在一个块内指定指令。
例如:

location /some/path/ { proxy_pass http://www.example.com/link/;}

此示例配置将在此location处理的所有要求通报到指定地址(http://www.example.com/link/)处的代理做事器。
该地址可以指定为域名或IP地址。
该地址还可能包括一个端口:

location ~ \.php { proxy_pass http://127.0.0.1:8000;}

在上述第一个示例中,代理做事器的地址后面是URI为 /link/。
如果URI与地址一起指定,它将更换与location参数匹配要求URI的部分。

要将要求通报给非HTTP代理做事器,应利用适当的_ pass指令:

fastcgi_pass 将要求通报给FastCGI做事器uwsgi_pass 将要求通报给uwsgi做事器scgi_pass 将要求通报给SCGI做事器memcached_pass 将要求通报给memcached做事器

proxy_pass指令也可以指向一组命名的做事器。
在这种情形下,根据指定的方法在组中的做事器之间分配要求。

3. 通报要求标头

默认情形下,NGINX在代理要求“Host” 和 “Connection”中重新定义了两个头字段,并肃清了其值为空字符串的头字段。
“Host”设置为$proxy_host变量,“Connection”设置为关闭(close)。

要变动这些设置,以及修正其他header字段,请利用proxy_set_header指令。
该指令可以在一个或多个位置(location)指定。
它也可以在特定的server高下文或http块中指定。
例如:

location /some/path/ { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://localhost:8000;}

在此配置中,“Host”字段设置为 变量。

为了防止头域被通报给代理做事器,请将其设置为空字符串,如下所示:

location /some/path/ { proxy_set_header Accept-Encoding \"大众\"大众; proxy_pass http://localhost:8000;}4. 配置缓冲区

默认情形下,NGINX缓存来自代理做事器的相应。
相应存储在内部缓冲区中,并且不会发送到客户端,直到收到全体相应。
缓冲有助于通过慢客户端优化性能,如果相应从NGINX同步通报到客户端,这可能会摧残浪费蹂躏代理做事器韶光。
然而,当启用缓冲时,NGINX许可代理做事器快速处理相应,而NGINX存储相应韶光与客户端须要下载的韶光一样长。

proxy_buffers指令掌握分配给要求的缓冲区的大小和数量。
来自代理做事器的相应的第一部分存储在单独的缓冲区中,其大小由指令设置。
这部分常日包含一个比较小的相应头,并且可以比别的的相应的缓冲区小。

在以下示例中,缓冲区的默认数量增加,并且相应的第一部分的缓冲区的大小小于默认值。

location /some/path/ { proxy_buffers 16 4k; proxy_buffer_size 2k; proxy_pass http://localhost:8000;}

如果缓存被禁用,则在从代理做事器吸收缓冲时,相应将同步发送到客户端。
对付须要尽快开始吸收相应的快速交互式客户端,此行为可能是可取的。

要禁用特定位置的缓冲,请在location块中将proxy_buffering伪指令设置为off,如下所示:

location /some/path/ { proxy_buffering off; proxy_pass http://localhost:8000;}

在这种情形下,NGINX只利用由proxy_buffer_size配置的缓冲区来存储相应确当前部分。

5. 选择传出IP地址

如果您的代理做事器有多个网络接口,有时您可能须要选择特定的源IP地址才能连接到代理做事器或上游。
如果NGINX后真个代理做事器只配置为接管来自特定IP网络或IP地址范围的连接,在这种情形下,这个配置选项就很有用。

指定指令和必要网络接口的IP地址:

location /app1/ { proxy_bind 127.0.0.1; proxy_pass http://example.com/app1/;}location /app2/ { proxy_bind 127.0.0.2; proxy_pass http://example.com/app2/;}

IP地址也可以用变量指定。
例如,变量通报接管要求的网络接口的IP地址:

location /app3/ { proxy_bind $server_addr; proxy_pass http://example.com/app3/;}

篇幅有限,关于nginx反向代理就先容到这了,大家有空可以自己测试一下。

后面会紧张分享DBA和devops内容,感兴趣的朋友也可以关注下!