Eswink Eswink
  • 首页
  • 网站公告
  • 红蓝对抗
    • 攻防对抗
    • 渗透分析
  • 资源分享
    • 代码发布
    • 其他分享
  • 本站专题
    • 视频集锦
    • WordPress
    • 工程实践
    • 奇闻趣事
    • 活动线报
  • 问答
  • 绿标域名
  • 关于本站
    • 友情链接
  • 注册
    登录
现在登录。
  • 首页
  • 网站公告
  • 红蓝对抗
    • 攻防对抗
    • 渗透分析
  • 资源分享
    • 代码发布
    • 其他分享
  • 本站专题
    • 视频集锦
    • WordPress
    • 工程实践
    • 奇闻趣事
    • 活动线报
  • 问答
  • 绿标域名
  • 关于本站
    • 友情链接
首页 其他分享 Nginx部署vue项目应用

Nginx部署vue项目应用

小伍同学 2022-05-11 0:09:40 本文共2461个字,预计阅读时间需要7分钟
1 星2 星3 星4 星5 星 (已有2 点评, 平均得分: 5.00)您还未点评
Loading...

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

Nginx部署vue项目应用图片

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

  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项目应用图片1

默认情况下,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项目应用图片2

3、打包项目

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

Nginx部署vue项目应用图片3

nginx配置

1、找到nginx配置文件。

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

cd /www/server/nginxllcd confllvim ngnix.conf
Nginx部署vue项目应用图片4

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项目应用图片5

通过域名访问

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

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

在这里插入图片描述

起初错误的想法

  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;
    }
#Nginx#vue#vue项目部署#项目部署
0
小伍同学
一个即将入土的程序猿
赞赏
小伍同学
评论 (4)
返回
  • 1652709238156

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

    1周 前 回复
    • 小伍同学

      @1652709238156 Nicetheme的PandaPro

      1周 前 回复
    • 1652709238156

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

      3天 前 回复
    • 小伍同学

      @1652709238156 没用,主题自带

      3天 前 回复
猜你喜欢
  • 完美解决Windows环境(VMware环境)下Docker Desktop的安装启动问题
  • 建站大佬留下的一篇SEO优化方法和思路
  • 缺少TLS中间证书会造成神秘的浏览器问题
  • 如何快速地对ETCD进行内存优化
  • Windows好用的图像查看器分享:FastStone Image Viewer
小伍同学
一个即将入土的程序猿
130
文章
60
评论
169
获赞
小伍同学
15 3月, 2022
Poedit自动翻译插件|突破Poedit PRO版本限制实现在线翻译
Copyright © 2020-2022 Eswink. Designed by nicetheme. 川公网安备 51012202000979号 | 蜀ICP备20002650号-6
当前线路为: 国内线路
本站已安全运行:
本站由酷盾安全提供高防CDN国际线路安全防护服务
友链: Eswink 信息笔记 网站目录 站长新动力 脚本挂机引流赚钱 勇康博客网 龙笑天下 HTTP代理 QYV企业商务咨询 镇北府博客 吾爱漏洞 祭夜の咖啡馆 杭州论坛 龙鳞收录网 KIENG博客 Hackyh‘Blog
在线客服
小伍同学
我们将会在24小时内回复您,如果有急事请联系QQ或者微信
12:01
您好,有任何疑问请与我们联系!
公众号

选择聊天工具: