8、Nginx-代理服务

版权声明:原创作品,谢绝转载!否则将追究法律责任。 ————— 作者:kirin

1.Nginx代理服务基本概述

proxy 代理
网站:让网站可以承受更高并发/访问量
用户:通过代理上网加速/翻Q……..
反向代理与正向代理

1.正向代理

正向代理是为客户端提供服务
例如:
1.客户端科学的上网(FQ)
2.客户端提速(游戏加速器)
3.客户端缓存(下载资源先查看代理是否有缓存,如果有直接从代理获取)
4.客户端授权(很多公司为了安全,连接外网需要通过防火墙,防火墙可以配置规则,允许谁可以上网,谁不可以上网)

2.反向代理

反向代理是为服务端提供服务
1.路由功能:根据用户请求的URI,调度到不同功能地服务器进行处理。
2.负载均衡:将用户发送的请求,通过负载均衡调度算法挑选一台合适的节点进行请求处理。
3.动静分离:根据用户请求的URI进行区分,将动态资源调度至应用服务器进程处理。将静态资源调度至静态资源服务器处理。
4.数据缓存:将后端查询的数据存储至反向代理上缓存,可以加速用户获取资源。

3.正反向代理的区别

区别在于形式上服务的对象不一样,其次架设的位置点不一样
正向代理代理的对象是客户端,为客户端服务
反向代理代理的对象是服务器,为服务器服务

2.Nginx反向代理常用模块

1.代理指令proxy_pass
Syntax: **proxy_pass** *URL*;
Default:
Context: location, if in location, limit_except
2.设置或修改代理到后端,请求头的内容 proxy_set_header
Syntax: **proxy_set_header** *field* *value*;
Default: proxy_set_header Host $proxy_host;proxy_set_header Connection close;
Context: http, server, location

proxy_set_header Host $http_host; #修改Host的内容
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #增加代理-->web请求头信息 让后端节点记录用户真实ip地址(客户端ip地址)

3.http版本proxy_http_version

| Syntax: | **proxy_http_version** 1.0 | 1.1; |
| :------- | ----------------------------------- |
| Default: | proxy_http_version 1.0; |
| Context: | http, server, location |

可以设置为1.1以保证一次链接多次请求

4.连接,读取,写入超时时间

#代理与后端节点 建立连接的超时时间proxy_connect_timeout 不建议超过75s

Syntax: **proxy_connect_timeout** *time*;
Default: proxy_connect_timeout 60s;
Context: http, server, location

#代理服务器读取后端响应的超时时间proxy_read_timeout

Syntax: **proxy_read_timeout** *time*;
Default: proxy_read_timeout 60s;
Context: http, server, location

#代理服务器发送请求给后端节点 超时时间proxy_send_timeout

Syntax: **proxy_send_timeout** *time*;
Default: proxy_send_timeout 60s;
Context: http, server, location
5.代理后端节点相应信息缓冲

####proxy_buffering 是否开启代理服务器 缓存后端节点的响应 报文信息(响应头和响应主体)

| Syntax: | **proxy_buffering** on | off; |
| :------- | ------------------------------- |
| Default: | proxy_buffering on; |
| Context: | http, server, location |

####启用缓冲后,nginx会尽快从代理服务器接收响应,并将其保存到 proxy_buffer_size和proxy_buffers指令设置的缓冲区中。如果整个响应无法放入内存,则可以将部分响应保存到磁盘上的临时文件中。写入临时文件由proxy_max_temp_file_size和 proxy_temp_file_write_size指令控制。

##proxy_busy_buffers_size

Syntax: **proxy_busy_buffers_size** *size*;
Default: proxy_busy_buffers_size 8k|16k;
Context: http, server, location

##设置用于读取从代理服务器接收的响应的第一部分的缓冲区大小。 ##这部分通常包含一个小的响应头。

##为单个连接缓存响应信息 8 128k;proxy_buffers

Syntax: **proxy_buffers** *number* *size*;
Default: proxy_buffers 8 4k|8k;
Context: http, server, location

#为单个连接设置用于从代理服务器读取响应的缓冲区的数量和大小。 默认情况下,缓冲区大小等于一个内存页。这是4K或8K,取决于平台。

PS:通常情况下,我们可以将这些配置汇总一下写在一个文件里,编辑配置文件时直接include即可

[root@lb01 ~]# cat /etc/nginx/conf.d/proxy_blog.conf 
server {
	listen 80;
	server_name blog.com;
	location / {
		proxy_pass http://10.0.0.7;
		include proxy.params;
	}
}

[root@l01 ~]# cat /etc/nginx/proxy.params 
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60;
proxy_read_timeout 60;
proxy_send_timeout 60;
proxy_buffering on;
proxy_buffer_size 8k;
proxy_buffers 4 64k;
proxy_http_version 1.1;
posted @ 2022-04-12 21:02  kirin(麒麟)  阅读(130)  评论(0编辑  收藏  举报
Δ