当前位置: 首页 > news >正文

Vue代理模式和Nginx反向代理(Vue代理部署不生效)

在使用axios时,经常会遇到跨域问题。为了解决跨域问题,可以在 vue.config.js 文件中配置代理:

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({transpileDependencies: true,devServer: {port: 7070,proxy: {'/api': {target: 'http://localhost:8080/admin',pathRewrite: {'^/api': ''}}}}
})

axios的post请求示例:

axios.post('/api/employee/login',{username:'admin',password: '123456'}).then(res => {console.log(res.data)}).catch(error => {console.log(error.response)})

前端发送:http://localhost:7070/api/employee/login
经过代理转换为:http://localhost:8080/admin/employee/login

axios的get请求示例:

axios.get('/api/shop/status',{headers: {token: ‘xxx.yyy.zzz’}})

前端发送:http://localhost:7070/api/shop/status
经过代理转换为:http://localhost:8080/admin/shop/status

打包部署vue

npm run build

打包结束后生成dist文件夹
在这里插入图片描述

注意:打包时这个代理并不会跟着打包

假设我们将项目打包到的nginx地址是localhost地址,访问端口是80(80默认可省略)

那么这时候数据请求将请求的是http://localhost/api/employee/login地址,但是我们需要请求的接口是localhost:8080地址,这时候就需要用到nginx的反向代理了 。

首先进入配置文件


#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;map $http_upgrade $connection_upgrade{default upgrade;'' close;}upstream webservers{server 127.0.0.1:8080 weight=90 ;#server 127.0.0.1:8088 weight=10 ;}server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   html/sky;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# 反向代理,处理管理端发送的请求location /api/ {proxy_pass   http://localhost:8080/admin/;#proxy_pass   http://webservers/admin/;}# 反向代理,处理用户端发送的请求location /user/ {proxy_pass   http://webservers/user/;}# WebSocketlocation /ws/ {proxy_pass   http://webservers/ws/;proxy_http_version 1.1;proxy_read_timeout 3600s;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "$connection_upgrade";}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

配置好了代理之后就可以重启服务器了
nginx将http://localhost/api/employee/login 转为http://localhost:8080/admin/employee/login

相关文章:

  • 第3节、电机定速转动【51单片机+L298N步进电机系列教程】
  • 第一章 RocketMQ 概述
  • Java实现数据可视化的智慧河南大屏 JAVA+Vue+SpringBoot+MySQL
  • 如何使用postman进行接口调试
  • 蓝桥杯Web应用开发-CSS3 新特性【练习一:属性有效性验证】
  • 算法之美_2024
  • 【蓝桥杯冲冲冲】[NOIP2017 提高组] 宝藏
  • 《Docker极简教程》--Docker基础--基础知识(四)
  • 网络安全产品之认识准入控制系统
  • Java Map 集合的几种常用遍历方式
  • MySQL数据库常用语法回顾及知识点合集(持续更新中……)
  • Topaz Photo AI for Mac v2.3.1 补丁版人工智能降噪软件无损放大
  • 基于spring boot实现邮箱发送和邮箱验证
  • word调整论文格式的记录
  • 02-Java抽象工厂模式 ( Abstract Factory Pattern )
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Android开源项目规范总结
  • emacs初体验
  • Joomla 2.x, 3.x useful code cheatsheet
  • Mac转Windows的拯救指南
  • Mocha测试初探
  • node入门
  • pdf文件如何在线转换为jpg图片
  • Python进阶细节
  • scala基础语法(二)
  • spark本地环境的搭建到运行第一个spark程序
  • sublime配置文件
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • v-if和v-for连用出现的问题
  • 创建一种深思熟虑的文化
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 每天一个设计模式之命令模式
  • 前端存储 - localStorage
  • 前端知识点整理(待续)
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • #AngularJS#$sce.trustAsResourceUrl
  • #HarmonyOS:软件安装window和mac预览Hello World
  • $.ajax()参数及用法
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (C语言)球球大作战
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (强烈推荐)移动端音视频从零到上手(上)
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)Mysql的优化设置
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .Net - 类的介绍
  • .NET 常见的偏门问题
  • .net 获取url的方法