vue代理配置

对于调试阶段,需要多个服务之间进行api调用,配置代理可以方便的解决该问题;介绍两种代理方式。

vue.config.js配置代理

配置方式参见:

module.exports = {
    /* 部署生产环境和开发环境下的URL:可对当前环境进行区分,baseUrl 从 Vue CLI 3.3 起已弃用,要使用publicPath */ 
    /* baseUrl: process.env.NODE_ENV === 'production' ? './' : '/' */
    publicPath: process.env.NODE_ENV === 'production' ? '/public/' : './',
    /* 输出文件目录:在npm run build时,生成文件的目录名称 */
    outputDir: 'dist',
    /* 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录 */
    assetsDir: "assets",
    /* 是否在构建生产包时生成 sourceMap 文件,false将提高构建速度 */
    productionSourceMap: false,
    /* 默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存,你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变) */
    filenameHashing: false,
    /* 代码保存时进行eslint检测 */
    lintOnSave: true,
    /* webpack-dev-server 相关配置 */
    devServer: {
        /* 自动打开浏览器 */
        open: true,
        /* 设置为0.0.0.0则所有的地址均能访问 */
        host: '0.0.0.0',
        port: 8080,
        https: false,
        hotOnly: false,
        /* 使用代理 */
        proxy: {
            '/api': {
                /* 目标代理服务器地址: localhost:8080/api/*即会映射到http://192.168.1.172/api/* */
                target: 'http://192.168.1.172',
                /* 允许跨域 */
                changeOrigin: true,
            },
        },
    },
}

对于有config目录的,修改config/index.js文件中dev.proxyTable属性的值为上述代码的proxy即可:

dev: {
  env: require('./dev.env'),
  port: 8080,
  autoOpenBrowser: true,
  assetsSubDirectory: 'static',
  assetsPublicPath: '/',
  proxyTable: {
	'/api': {
		/* 目标代理服务器地址: localhost:8080/api/*即会映射到http://192.168.1.172/api/* */
		target: 'http://192.168.1.172',
		/* 允许跨域 */
		changeOrigin: true,
		/* 需要rewrite的 */
		pathRewrite: {
			'^/apis': ''
		} 
	},
  },
  cssSourceMap: false
 }

nginx 代理配置

官网获取nginx软件,简单修改配置文件即可:

server {
        listen       8081;
        server_name  localhost;
        location / {
            proxy_pass http://192.168.1.172;
        }
        location /dev {
            proxy_pass http://localhost:8080/dev/;
        }
}
# 映射关系:
# localhost:8081  ⇒ http://192.168.1.172
# localhost:8081/dev  ⇒ http://localhost:8080/dev

两种方式均可以达到较好的效果,当然第一种方法更简单,但nginx更强大;根据自己的工程规模及需求进行选取即可;

<think>好的,我现在需要帮助用户了解如何在Vue配置代理来设置浏览器的Referer头。首先,我需要回忆一下Vue项目中常用的代理配置方法,通常使用vue.config.js中的devServer.proxy选项。 用户的问题涉及到设置Referer头,这通常是在代理请求时需要添加或修改的请求头。根据引用[4]提到的,代理配置可以用于本地开发时转发请求到后端,所以可能需要配置代理的headers选项。 接下来,我需要检查如何通过Vue代理配置来修改请求头。查阅相关文档,Vue CLI的devServer.proxy支持使用pathRewrite和headers等选项。不过,默认情况下,代理可能会自动携带某些头信息,但修改Referer可能需要手动设置。 然后,引用[4]提到了前端应用通过代理与后端API交互,所以正确的做法是在代理配置中添加headers属性,设置Referer的值。同时,需要注意跨域问题,确保服务器允许该Referer,如引用[1]所述,服务器可能需要配置允许特定的Referer。 另外,引用[2]中的Nginx配置示例展示了后端服务器的负载均衡,但用户的问题是关于前端Vue代理配置,所以主要参考vue.config.js的设置。可能还需要考虑开发服务器(如webpack-dev-server)的配置选项。 最后,确保回答结构清晰,分步骤说明,并提醒用户服务器端的配置同样重要。同时生成相关问题,帮助用户进一步了解代理和Referer的相关设置。</think>### 在Vue配置代理并设置Referer头的步骤 #### 1. 配置Vue代理(`vue.config.js`) 在Vue项目根目录下创建或修改`vue.config.js`文件,通过`devServer.proxy`配置代理,并添加自定义请求头(包括Referer): ```javascript module.exports = { devServer: { proxy: { '/api': { target: 'http://your-backend-server.com', changeOrigin: true, pathRewrite: { '^/api': '' }, headers: { Referer: 'http://your-allowed-referer.com' // 设置自定义Referer } } } } } ``` 此配置会将所有以`/api`开头的请求代理到目标服务器,并附加指定的Referer头[^4]。 #### 2. 验证请求头 在浏览器开发者工具的`Network`标签中检查请求头,确认Referer是否已正确添加。若未生效,需检查代理配置语法或路径匹配规则。 #### 3. 服务器端配置Nginx示例) 如果目标服务器对Referer有限制,需在Nginx配置中添加白名单。例如: ```nginx server { location / { valid_referers your-allowed-referer.com; if ($invalid_referer) { return 403; } proxy_pass http://backend; } } ``` 此配置仅允许来自`your-allowed-referer.com`的请求,其他来源返回403错误[^1][^2]。 #### 4. 其他注意事项 - **跨域问题**:修改请求头可能触发CORS预检请求
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值