Eswlnk Blog Eswlnk Blog
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈
  • 注册
  • 登录
首页 › 其他分享 › Nginx部署vue项目应用 › 评论页 1

Nginx部署vue项目应用

Eswlnk的头像
Eswlnk
2022-05-11 0:09:40
Nginx部署vue项目应用-Eswlnk Blog
智能摘要 AI
本文介绍了如何在同一端口(如80)下通过Nginx部署多个Vue项目。首先,调整Vue项目的`vue.config.js`中的`publicPath`以支持子路径访问,如`/vue/`。接着,配置Vue路由的`base`属性为`/vue/`。在Nginx配置中,通过`location`块分别设置Halo博客和Vue项目的代理路径,确保静态资源和请求正确转发。最终实现通过`localhost`访问Halo博客,通过`localhost/vue`访问Vue项目。文中还纠正了最初尝试直接使用`/halo`路径访问博客时遇到的问题。

配置参考 | Vue CLI
如何在nginx同一端口下部署多个vue项目 | 字节逆旅-掘金
【网络】[::]:80是什么意思 / [::]是什么意思 | 微笑丶1998-CSDN
nginx的反向代理proxy_pass指令 | 牛牛Blog-CSDN

Nginx部署vue项目应用-Eswlnk Blog

在一个端口号下部署多个应用

  1. 只有一个域名,例如我的域名为:localhost,只有一个端口80。
  2. 服务器部署了Halo博客,Halo默认端口为8090,并且已经使用nginx将其映射成了80,可以使用 localhost 直接访问到博客。
  3. 现在仍需要用这个域名部署一个Vue项目,使得其可以用 localhost/vue 来访问该项目。

前端配置

1、静态资源地址配置

在vue.config.js文件下找到publicPath配置。在官方文档可以查看publicPath说明。

publicPath: process.env.NODE_ENV === 'development' ? '/' : '/vue/',
Nginx部署vue项目应用-Eswlnk Blog

默认情况下,Vue CLI 会假设你的应用是被部署在一个域名的根路径上,例如https://www.my-app.com/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在https://www.my-app.com/my-app/,则设置 publicPath 为 /my-app/。

这个值也可以被设置为空字符串 (‘’) 或是相对路径(‘./’),这样所有的资源都会被链接为相对路径,这样打出来的包可以被部署在任意路径,也可以用在类似 Cordova hybrid应用的文件系统中。

注意是与package.json同级的vue.config.js,而不是public中的config.js,之前一直写错,导致找不到静态资源。

2、配置vue项目路由

将 base: ‘/vue/’, 应用到vue项目路由中。

Nginx部署vue项目应用-Eswlnk Blog

3、打包项目

使用npm run bulid打包之后,会生成dist文件夹,在dist文件夹中,你会找到index.html页面,类似下图。所有src的前缀会加上/vue/,并且会生成meta base=“/vue/”。

Nginx部署vue项目应用-Eswlnk Blog

nginx配置

1、找到nginx配置文件。

我的nginx在/www/server/nginx下。

cd /www/server/nginxllcd confllvim ngnix.conf
Nginx部署vue项目应用-Eswlnk Blog

2、编辑配置ngnix.conf文件。

2、编辑配置ngnix.conf文件。
 server
    {
      listen 80;# 端口号
      listen [::]:80;
      server_name cau1i.cn;# 域名
      client_max_body_size 1024m;
      
      # Halo的代理
      location / {
        proxy_pass http://localhost:8090/;
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
      
      # Vue项目的代理
      location /vue {
          alias  /home/server/dist; # 项目所在位置,并且注意为alias而不是root
          index  index.html index.htm;
          try_files $uri $uri/ /vue/index.html; # 注意/vue/前缀
      }
      
      access_log  /www/wwwlogs/access.log;
    }
listen 80:端口号为80。
listen [::]:80:参考第三篇文章。
server_name:域名。
client_max_body_size:Nginx 默认的 client_max_body_size 配置大小为 1m,可能会导致在 Halo 后台上传文件被 Nginx 限制,可根据需要自行修改。
proxy_pass:参考第四篇文章。
alias /home/server/dist:为我的项目文件所在位置。
  1. listen 80:端口号为80。
  2. listen [::]:80:参考第三篇文章。
  3. server_name:域名。
  4. client_max_body_size:Nginx 默认的 client_max_body_size 配置大小为 1m,可能会导致在 Halo 后台上传文件被 Nginx 限制,可根据需要自行修改。
  5. proxy_pass:参考第四篇文章。
  6. alias /home/server/dist:为我的项目文件所在位置。
  7. root和alias的区别以及try_files的作用:参考第二篇文章。
Nginx部署vue项目应用-Eswlnk Blog

通过域名访问

1、通过 http://localhost/ 访问成功

2、通过 http://localhost/vue 访问成功

Nginx部署vue项目应用-Eswlnk Blog

起初错误的想法

  1. 起初想法是使用 localhost 直接访问项目,而使用 localhost/halo 访问博客。
  2. 但是如下配置,会导致halo找不到静态文件。
server
    {
      listen 80; 
      listen [::]:80;
      server_name cau1i.cn;
      client_max_body_size 1024m;
 
      location / {
          root   /home/server/dist;
          index  index.html index.htm;
          try_files $uri $uri/ /index.html;
      }
 
      location /halo {
        proxy_pass http://localhost:8090/;
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
      
      access_log  /www/wwwlogs/access.log;
    }
本站默认网盘访问密码:1166
本站默认网盘访问密码:1166
Nginxvuevue项目部署项目部署
0
4
Eswlnk的头像
Eswlnk
一个有点倒霉的研究牲站长
赞赏
如何快速地对ETCD进行内存优化
上一篇
缺少TLS中间证书会造成神秘的浏览器问题
下一篇

评论 (4)

请登录以参与评论
现在登录
  • 1652709238156

    请问作者你的网站用的是啥主题呀,代码这么好看。

    4 年前 • 180.163.*.* • Unknown Unknown • 回复
    • 的头像
      小伍同学

      @1652709238156 Nicetheme的PandaPro

      4 年前 • 180.163.*.* • Unknown Unknown • 回复
    • 1652709238156

      @小伍同学 好的谢谢你回复得真快,还想问一下你这有用到什么MD插件吗?

      4 年前 • 114.80.*.* • Unknown Unknown • 回复
    • 的头像
      小伍同学

      @1652709238156 没用,主题自带

      4 年前 • 114.80.*.* • Unknown Unknown • 回复

猜你喜欢

  • 「亲测有效」Google Gemini 学生优惠:解决身份验证和支付卡验证
  • 解决国际版EdgeOne绑卡和手机验证问题
  • 小工具开发之EdgeOne免费计划兑换工具
  • 「其他分享」市面上静态页面服务商比较与推荐:选择最适合您的平台
  • 「图片优化」利用Cloudflare CDN减少回源Bucket流量
Eswlnk的头像

Eswlnk

一个有点倒霉的研究牲站长
1108
文章
319
评论
679
获赞

随便看看

前端学习之在游戏中提高CSS技巧
2022-04-02 1:45:20
「工具分享」全新的Windows效率利器:Quicker
2022-08-30 12:41:39
「职场突破」如何突破职业生涯的瓶颈期
2022-12-20 18:29:30

文章目录

专题展示

WordPress53

工程实践37

热门标签

360 AI API CDN java linux Nginx PDF PHP python SEO Windows WordPress 云服务器 云服务器知识 代码 免费 安全 安卓 工具 开发日志 微信 微软 手机 插件 攻防 攻防对抗 教程 日志 渗透分析 源码 漏洞 电脑 破解 系统 编程 网站优化 网络 网络安全 脚本 苹果 谷歌 软件 运维 逆向
  • 首页
  • 知识库
  • 地图
Copyright © 2023-2025 Eswlnk Blog. Designed by XiaoWu.
本站CDN由 壹盾安全 提供高防CDN安全防护服务
蜀ICP备20002650号-10
页面生成用时 0.573 秒   |  SQL查询 35 次
本站勉强运行:
友情链接: Eswlnk Blog 网站渗透 倦意博客 特资啦!个人资源分享站 祭夜博客 iBAAO壹宝头条
  • WordPress142
  • 网络安全64
  • 漏洞52
  • 软件52
  • 安全48
现在登录
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈