nginx反向代理vue项目

文章目录


前言

项目描述:前端vue项目、后端Java项目、首页WordPress项目

客户要求:使用宝塔进行部署

需求描述:客户只有一个SSL单域名DV证书要求首页部署wordpress项目作为官网,/system为vue项目,/api为java后端项目

一、创建站点

1.添加站点

域名填写客户域名、根目录指向wordpress项目地址(此处带过不是重点)

2.添加ssl证书

将证书key、pem(crt)内容拷贝到内容中保存即可

二、反向代理vue项目

此处遇到的问题:

1.代理后静态文件(.css,.js)访问不到404

2.vue项目访问后端接口访问不到

1.添加反向代理

代理名称随便取

代理目录意思为解析域名后/xxx的转发到目标URL

默认创建如下

bash 复制代码
location ^~ /system
{
    proxy_pass http://xzzzz:9002/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    # proxy_hide_header Upgrade;

    add_header X-Cache $upstream_cache_status;

    #Set Nginx Cache
    
    
    set $static_filebdpe8eQS 0;
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
    	set $static_filebdpe8eQS 1;
    	expires 1m;
        }
    if ( $static_filebdpe8eQS = 0 )
    {
    add_header Cache-Control no-cache;
    }
}

添加下面配置解决静态文件404问题
注意路径后边一定要加/

bash 复制代码
location ^~ /system.*\.(js|css)?$
{
    proxy_pass http://xxxxxx:9002/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    # proxy_hide_header Upgrade;

    add_header X-Cache $upstream_cache_status;

    #Set Nginx Cache
    
    
    set $static_filebdpe8eQS 0;
    if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
    {
    	set $static_filebdpe8eQS 1;
    	expires 1m;
        }
    if ( $static_filebdpe8eQS = 0 )
    {
    add_header Cache-Control no-cache;
    }
}

2.更改vue项目配置

1.更改router,添加/system路径前缀

js 复制代码
export default new Router({
  mode: 'history', // 去掉url中的#
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes,
  base:'/system'
})

2.更改打包后静态文件的访问地址添加/system路径前缀

vue.config.js
如果是vite构建的则修改base字段

3.修改反向代理配置

解决vue跨域问题

bash 复制代码
	location /prod-api/ {
		proxy_set_header Host $http_host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header REMOTE-HOST $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_pass http://www.xxx.com/api;
	}
相关推荐
jerryinwuhan9 小时前
《系统部署与运维》开篇 课程介绍
运维
我是谁??11 小时前
Ubuntu22.04更换清华源
linux·运维·服务器
java1234_小锋12 小时前
Vue3专题 - 组件基础
vue.js·vite
Shell运维手记12 小时前
Linux 常用基础命令学习笔记
linux·运维·笔记·学习·算法·github
朴马丁12 小时前
国际与国产PLM在精细化工赛道的布局:2026年主要厂商技术特色
大数据·运维·人工智能·流程行业plm·化工新材料
Kendra91913 小时前
从 0 到上线:单文件网页 App 部署到阿里云 ECS 全流程(Nginx+Node+PM2+PostgreSQL)
nginx·阿里云·云计算·部署·个人开发·今天吃什么
Elastic 中国社区官方博客14 小时前
Elasticsearch:使用 AI Agent 来创建 workflow
大数据·运维·人工智能·elasticsearch·搜索引擎·自动化·全文检索
测试运维日常笔记14 小时前
Linux系统安装配置TigerVNC服务器完整指南
linux·运维·服务器
喜欢的名字被抢了15 小时前
程序出问题怎么查,以及如何让它不掉线
java·运维·数据库
雾时之林15 小时前
Linux----cron定时服务
linux·运维·服务器