1.代理原理

正向代理:内网客户端通过代理访问互联网,通常要设置代理服务器地址和端口。

反向代理:外网用户通过代理访问内网服务器,内网服务器无感知。

正向代理和反向代理的区别:

(1)正向代理其实就是客户端的代理,帮助客户端访问其无法访问的服务器资源。反向代理则是服务器端代理,帮助服务器做负载均衡,安全防护等。

(2)正向代理一般是客户端架设的,比如在自己的机器上安装一个代理软件。而反向代理一般是服务器架设的,比如在自己的机器集群中部署一个反向代理服务器。

(3)正向代理中,服务器不知道真正的客户端到底是谁,以为访问自己的就是真实的哭护短。在反向代理中,客户端不知道真正的服务器是谁,以为自己访问的就是真实的服务器。

(4)正向代理和反向代理的作用和目的不同。正向代理主要是用啦解决访问限制问题。而反向代理则是提供负载均衡、安全防护等作用。二者均能提高访问速度。

 2.proxy代理(ngx_http_proxy_module)

语法:
代理
Syntax: proxy_pass URL; 代理的后端服务器URL
Default: --
Context: location,if in location,limit_except

缓冲区
Syntax: proxy_buffering on | off; 缓冲开关
Default: proxy_buffering on
Context: http,server,location
 proxy_buffering开启的情况下,nginx会把后端返回的内容先放到缓冲区中,然后再返回给客户端(边收边传,不是全部接受完再传给客户端) 
 

Syntax: proxy_buffers_size size;
Default: proxy_buffers 8 4k | 8k; 缓冲区大小
Context: http,server,location

Syntax: proxy_busy_buffers_size size;
Default: proxy_busy_buffers  8k | 16k; 忙碌的缓冲区大小,控制同时传递给客户端的buffer数量
Context: http,server,location

超时
Syntax: proxy_read_timeout time;
Default: proxy_read_timeout 60s; 连接超时
Context: http,server,location

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

Syntax: proxy_send_timeout time;
Default: proxy_send_timeout 60s; nginx进程向fastcgi进程发送request的整个进程的超时时间
Context: http,server,location

3.启用代理

环境:两台nginx服务器(如果做了前面的实验,一定要把前面的实验内容清掉)

nginx-1:(安装nginx,前面的内容里面有nginx的配置,这里就不再写环境配置信息了,直接安装)

yum install -y nginx

systemctl start nginx

#配置环境,把网页的内容改一下

nginx proxy_bind配置 nginx的proxy_运维

nginx-2:启动代理程序

yum install -y nginx

systemctl start nginx

vim /etc/nginx/conf.d/default.conf

nginx proxy_bind配置 nginx的proxy_服务器_02

 systemctl restart nginx

 4.使用pc客户端访问nginx-2服务器地址,观察nginx-1服务器的日志

cat /var/log/nginx/access.log

访问成功,记录了客户机的ip和代理服务器的ip