代理

代理相当于一个中介,A和B本来不可以直连,但是C可以访问B,通过代理C访问B,C就是中介。C即为代理。

正向代理

正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。

正向代理是客户端代理,代理客户端,服务端并不知道实际发生请求的客户端。就像我们访问谷歌和外网的各种网站时,直接访问无法访问,可以使用代理服务器将我们的请求转发到谷歌,谷歌只会知道有一个网站发出了请求,而不知道实际发出请求的是哪个客户端,谷歌会根据此请求做出响应。

正向代理总结:

  1. 正向代理为与用户与服务器之间
  2. 用户发出请求时,明确自己请求的服务器
  3. 真实服务器不知道发出请求的是哪个客户端,保护了用户信息

反向代理

反向代理与正向代理相反,反向代理为服务器服务。反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

就像我们访问百度,百度对外的域名为www.baidu.com,但其实际的服务器节点我们并不清楚,而我们访问百度时,反向代理服务器将会把请求转发到众多服务器节点的其中一个服务器节点,这个服务器节点将会对我们的请求做出响应,并返回响应结果

反向代理总结:

  1. 反向代理服务器位于用户和服务器之间。
  2. 用户访问反向代理服务器,就可以获取真实的资源。
  3. 反向代理机制 用户无需了解真实的服务器信息。
  4. 反向代理保护了服务器端信息,也称之为服务器端代理。


正向代理与反向代理区别

  1. 正向代理需要设置访问的节点服务器ip地址或者域名进行访问,由设置的服务器ip或域名进行访问内容获取;反向代理不需要设置服务器ip地址,可以直接访问真实服务器或域名,但服务器内部将会对访问内容进行跳转和内容返回。
  2. 正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见;而反向代理是代理服务器端,为服务器收发请求,使真实服务器对客户端不可见。
  3. 用途区别:
    • 正向代理:正向代理用途是为了在防火墙内的局域网提供访问internet的途径。另外还可以使用缓冲特性减少网络使用率
    • 反向代理:反向代理的用途是将防火墙后面的服务器提供给internet用户访问。同时还可以完成诸如负载均衡等功能
  4. 安全性区别
    • 正向代理:正向代理允许客户端通过它访问任意网站并且隐蔽客户端自身,因此你必须采取安全措施来确保仅为经过授权的客户端提供服务
    • 反向代理:对外是透明的,访问者并不知道自己访问的是代理。对访问者而言,他以为访问的就是原始服务器

      Nginx

Nginx命令

  1. start nginx 启动nginx
  2. nginx -s stop 关闭nginx
  3. nginx -s reload重启nginx

Nginx反向代理

知识点:

  1. nginx反向代理需要http协议支持
  2. server关键字: 每个反向代理服务都是一个server
  3. listen 关键字 默认监听80端口
  4. server_name 根据指定的域名进行反向代理
  5. location 反向代理时拦截的策略 / 所有的请求
  6. root 代表反向代理的是一个目录
  7. index 默认访问的页面

反向代理基础案例:

  1. server {
  2. listen 80;
  3. server_name localhost;
  4. location / {
  5. root html;
  6. index index.html index.htm;
  7. }

实现图片的反向代理

业务说明:
将磁盘地址映射为网络地址
磁盘地址: E:/images/2021/09/09/62eff8f000224ea49ce7b32facf2dc2a.jpg
网络地址: http://image.jt.com/2021/09/09/62eff8f000224ea49ce7b32facf2dc2a.jpg

业务实现:

  1. 用户通过域名访问真实的服务器
  2. nginx根据自身配置进行拦截,根据配置文件将域名http://image.jt.com//转换为具体的磁盘地址E:/images
  3. 根据磁盘地址访问真实的服务器资源
  4. 服务器将数据交给nginx,nginx将数据返回给用户
  1. server{
  2. listen 80;
  3. server_name http://image.jt.com;
  4. location / {
  5. root E:/images;
  6. }
  7. }

Hosts文件说明:
操作系统为了测试方便,在计算机中保留了hosts文件,该文件的主要作用就是实现域名与IP地址的映射,该映射只对本机生效。

注意事项

nginx启动时没有报错信息,只有运行重启命令才会显示报错信息。