4.1 Nginx代理服务的常见模式

一,正向代理

nginx 代理server_name代理多个 代理服务nginx_反向代理

1.客户端ke学上网

nginx 代理server_name代理多个 代理服务nginx_客户端_02

2. 户端提速

nginx 代理server_name代理多个 代理服务nginx_客户端_03

其他:客户端缓存, 户端授权

二:反向代理:

nginx 代理server_name代理多个 代理服务nginx_Nginx_04

1. 路由功能

nginx 代理server_name代理多个 代理服务nginx_反向代理_05

2.均衡载负载

nginx 代理server_name代理多个 代理服务nginx_Nginx_06

3.动静分离

nginx 代理server_name代理多个 代理服务nginx_反向代理_07

4.数据缓存

nginx 代理server_name代理多个 代理服务nginx_Nginx_08

4.2 正向代理与反向代理区别

区别在于形式上服务的"对象"不一样

正向代理代理的对象是客户端,为客户端服务 (常用与为客户端提供科学写上网的方式)

反向代理代理的对象是服务端,为服务端服务 (用用于企业集群架构, 后端有多个web节点组成的集群,然后 接入代理,由代理统一调度)

nginx 代理server_name代理多个 代理服务nginx_客户端_09

4.3 Nginx反向代理常用的协议:

nginx 代理server_name代理多个 代理服务nginx_客户端_10

5. Nginx反向代理场景实践

反向代理模式

Nginx反向代理模块

语言

http、websocket、 https

ngx_http_proxy_module

java / http / https / websocket /go

fastcgi

ngx_http_fastcgi_module

php

uwsgi

ngx_http_uwsgi_module

python

grpc

ngx_http_v2_module

go

6.nginx代理可支持的代理协议

nginx 代理server_name代理多个 代理服务nginx_反向代理_11

如果响应报文过大无法存储至内存,则会将其中部分保存到磁盘上的临时文件中。写入临时文件由proxy_temp_path (控制临时存储目录) proxy_max_temp_file_size(控制临时存储目录大小)和proxy_temp_file_write_size (控制一次写入临时文件的数据大小),临时文件最大大小由proxy_buffer_size和proxy_buffers限制。
【但当禁用缓冲时,nginx代理服务器会在接收到响应时立即同步传递给客户端。nginx代理服务器不会读取整个响应。】


proxy_buffers
是代理服务器为单个连接设置响应缓冲区“数量”和“大小”。如果一个后端服务所返回的页面大小为256KB,那么会为其分配4个64KB的缓冲区来缓存,如果页面大小大于256KB,那么大于256KB的部分会缓存到proxy_temp_path指定的路径中。但是这并不是好方法,因为内存中的数据处理速度要快于硬盘。所以这个值一般建议设置为站点响应所产生的页面大小中间值,如果站点大部分脚本所产生的页面大小为256KB,那么可以把这个值设置为"16 16k"、“464k”等。