Nginx反向代理

来源:博客园 2023-08-19 13:21:39


(资料图片)

什么是反向代理

正向代理(图左):如vpn

  • 代理会隐藏客户端的真实信息 (IP、端口),以自己的身份代替客户端在互联网上发起请求,并将返回结果转发给客户端。
  • 代理可以保护客户端、代理可以帮助客户端访问自己无法到达的网络。
  • 客户端需要将特定请求或全部请求主动配置为请求代理服务器。

反向代理(图右):

  • 反向代理会隐藏服务端真实信息 (IP、端口),把自己作为服务端暴露在互联网中,通过把请求转发给真实服务器处理拿到结果后再返回,来对外提供服务。
  • 反向代理客户有效保护服务端,隔离网络环境,并进行多个真实服务器的负载均衡。
  • 服务端需要将自己配置到反向代理中,然后将反向代理暴露在公网。
常见的Nginx反向代理应用
  • 负载均衡:Nginx可以在多个后端服务器之间进行负载均衡,将请求按照特定的规则分发到后端服务器,以提高系统的性能和可靠性。

  • 缓存加速:Nginx可以作为缓存服务器,将频繁被请求的静态资源缓存在内存中,加速网站的访问速度,减轻后端服务器的压力。

  • SSL终端代理:Nginx可以作为SSL终端代理,在客户端和后端服务器之间建立SSL加密连接,保护传输的数据安全性。

  • 虚拟主机代理:Nginx可以根据请求的域名或者URL路径,将请求分发到不同的后端服务器上,实现虚拟主机的代理。

  • WebSockets代理:Nginx可以代理WebSocket协议的请求,实现实时通信功能。

  • 反向代理缓存动态内容:Nginx可以根据后端服务器返回的响应结果进行缓存,包括动态内容的缓存,以减轻后端服务器的压力。

官网参数说明
简易的反向代理
...              #全局块events {         #events块   ...}http      #http块{    ...   #http全局块    server        #server块    {         ...       #server全局块        location [PATTERN]   #location块        {            ...        }        location ^~ /face/ {             proxy_pass http://192.168.0.1:80; #被代理的服务器地址            proxy_redirect default; #是否使用默认端口                        #转发时具体的转发参数设置            proxy_set header Host $http; #转发时设置HTTP头部            proxy_set_header X-Real-IP $remote #转发时设置客户端真实IP            proxy_set_header X-Forwarded-For $proxy_add; #转发时设置代理服务器IP                        #计时器用于维护服务器运行良好状态            proxy_connect_imeout 30s #设置代理连接超时时间(5秒)。当连接到后端服务器的时间超过此设定值时,将会中止连接。            proxy_send_imeout 60s#设置向后端服务器发送请求的超时时间(60秒)。当与后端服务器建立连接后,发送请求的时间超过此设定值时,将会中止连接。            proxy_read_imeout 60s #设置从后端服务器读取响应的超时时间(60秒)。当从后端服务器接收响应的时间超过设置的值时,将会终止连接。                        #缓冲区(buffer)功能设置。存储HTTP头部数据            proxy buffering on: # on| off 是否开启buffer功能。            proxy_buffer_size 32k #设置一个特殊的buffer大小的。            proxy_buffers 4 128k; #设置存储被代理服务器上的数据所占用的buffer的个数和每个buffer的大小            proxy_busy_buffers_size 256k;#在所有的buffer里,我们需要规定一部分buffer把自己存的数据传给A,这部分buffer就叫做busy_buffer。            proxy_max_temp_file_size 256k; #临时文件的最大大小由        }    }    server    {      ...    }    ...     #http全局块}

关键词:

返回顶部