Angular接口地址代理转发

  1. 创建代理配置文件:

在angular项目中创建代理配置文件如:

proxy.conf.json

{
  "/demo": {
    "target": "http://localhost:7993",
    "changeOrigin":true
  }
}

代理配置说明:

1. target:定义后端URL

2. pathRewrite:重写路径

3. changeOrigin:如果后端API没有在localhost上运行,则需要将此选项设置为true

4. logLevel:如果要检查代理配置是否正常工作,此选项设置为debug

5. bypass:有时我们必须绕过代理,可以用这个定义一个函数。但它应该在proxy.conf.js而不是proxy.conf.json中定义。


2.配置代理

2.1 开发环境代理配置

    在项目中找到package.json,在配置信息中找到 "scripts"的配置信息,在下面一般有 start,build等,主要看其后面允许的脚本,找到如 npm run,找到之后,该脚本后面增加--proxy-config proxy.conf.json

修改后如:

"start": "npm run color-less && ng serve -o  --host 0.0.0.0 --proxy-config proxy.conf.json",

配置完成后,只要接口中带有demo的前缀,就会被转发到配置的目标地址。


2.2 生产环境配置

    在项目中的angular.json文件中,找到“serve”的配置项,增加"proxyConfig": "proxy.conf.js",如:

 "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "ng-alain:build",
            "proxyConfig": "proxy.conf.js"
          },

配置完成后,等开发完,build之后的文件,在服务器中,使用nginx进行代理转发。

如:

location ^~ /demo{
        proxy_pass              http://localhost:7993/demo/;
        proxy_set_header        Host 127.0.0.1;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }


qrcode