4.1 Nginx代理服务的常见模式
一,正向代理
1.客户端ke学上网
2. 户端提速
其他:客户端缓存, 户端授权
二:反向代理:
1. 路由功能
2.均衡载负载
3.动静分离
4.数据缓存
4.2 正向代理与反向代理区别
区别在于形式上服务的"对象"不一样
正向代理代理的对象是客户端,为客户端服务 (常用与为客户端提供科学写上网的方式)
反向代理代理的对象是服务端,为服务端服务 (用用于企业集群架构, 后端有多个web节点组成的集群,然后 接入代理,由代理统一调度)
4.3 Nginx反向代理常用的协议:
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代理可支持的代理协议
如果响应报文过大无法存储至内存,则会将其中部分保存到磁盘上的临时文件中。写入临时文件由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”等。