一、概念

  1.正向代理

    正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端

    

    先搭建一个属于自己的代理服务器
    1)用户发送请求到自己的代理服务器
    2)自己的代理服务器发送请求到服务器
    3)服务器将数据返回到自己的代理服务器
    4)自己的代理服务器再将数据返回给用户

  2.反向代理

    反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端

    1)用户发送请求到代理服务器
    2)反向代理服务器发送请求到真正的服务器
    3)真正的服务器将数据返回给反向代理服务器
    4)反向代理服务器再将数据返回给用户

二、各自作用

  正向代理的作用:

  (1)访问原来无法访问的资源,如google

       (2) 可以做缓存,加速访问资源

  (3)对客户端访问授权,上网进行认证

  (4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息 

  反向代理的作用:

  (1)保证内网的安全,阻止web攻击,大型网站,通常将反向代理作为公网访问地址,Web服务器是内网

  (2)负载均衡,通过反向代理服务器来优化网站的负载

三、实际应用

  FQ软件------正向代理

   咋们国内访问www.google.com是被禁止的,会被GFW限制访问。那么如果想继续使用google 科学规范的上网就需要一些代理(FQ软件),通过他们去请求www.google.com,代理再把响应结果返回给你。

    GFW 的作用主要是用于分析和过滤中国境内外网络间的互相访问。也就是说,他不仅能限制国内网民访问境外的某些站点,也能限制国外用户访问国内的站点。 我们通常说的“被墙”,就是指访问被 GFW 所限制。而”FQ“,顾名思义,则是突破 GFW 的限制

  Nginx服务器-------反向代理(vue+nginx实现服务端跨域) 

   把vue项目打包发布之后,调用接口会提示404错误,这时还需要在nginx中做一下反向代理,在服务器中找到nginx的配置文件nginx.config,在需要添加反向代理的配置项中添加如下:

location /api {

                rewrite ^.+api/?(.*)$ /$1 break; //可选参数,正则验证地址

                include uwsgi_params; //可选参数,uwsgi是服务器和服务端应用程序的通信协议,规定了怎么把请求转发给应用程序和返回

                proxy_pass http://www.xxx.com;// 此处修改为自己的请求地址,必填

        }

 

四、附

  使用Nginx代理跨域需要对vue项目配置一下

  在实现vue的跨域访问之后,为了方便本机调试和发布,可以在vue中设置不同的环境变量,使项目在不同的环境中自动调用不同的接口地址

  需要文件:

  1) .env 无论开发环境还是生成环境都会加载  

    .env 文件内容:NODE_ENV = production

    2).env.development 开发环境加载这个文件 

     .env.development 文件内容:NODE_ENV = development

     VUE_APP_BASE_URL = http://localhost:8080/

  3) .env.production 生成环境加载这个文件   

     NODE_ENV = production

    VUE_APP_BASE_URL = http://www.xxx.com/

文件加载顺序:

首先加载.env文件,判断当前的项目环境,

如果是开始环境,则继续加载.env.development的内容,

如果是生产环境,则加载.env.production的内容,

ps:测试发现,当前的系统环境并不是.env文件中的NODE_ENV =xxx 确定的,而是根据实际情况决定,

如在ide中使用npm run serve调试,则加载的是.env.development文件

如果执行npm run build 之后发布到服务器,则加载的是.env.production文件

pageage.json的scripts部分如下

"scripts": {

    "serve": "vue-cli-service serve",

    "build": "vue-cli-service build",

    "lint": "vue-cli-service lint"

  },

在项目main.js文件可以打开查看当前的系统变量:

console.log('process.env',process.env)

设置完之后,在开始的vue.config.js代理文件中,将target指向改为: process.env.VUE_APP_BASE_URL

之后,vue会根据执行环境的不同自动加载相应的接口地址

posted on 2021-02-23 16:56  前端幼儿园_影啊翔  阅读(169)  评论(0)    收藏  举报