zoukankan      html  css  js  c++  java
  • Vue-cli项目部署到Nginx服务器

    0. Nginx使用

    以windows版为例,下载niginx压缩包并解压到任意目录,双击nginx.exe,在浏览器中访问http://localhost,如果出现Welcome to nginx!页面则说明成功。

    nginx常用命令如下:

    nginx -h  # 打开帮助
    nginx -t  # 检查配置文件是否正确
    
    # 以下命令均要先启动nginx才能执行
    nginx -s stop # 停止
    nginx -s quit # 退出
    nginx -s reopen # 重新启动(注意不会重新读取配置文件)
    nginx -s reload # 重新读取配置文件

    1. 部署项目到Nginx根目录

    对于vue-cli创建的项目,修改vue.config.js文件(位于项目根目录下,没有的话自行创建):

    module.exports = {
    // 开发环境中使用的端口
    devServer: {
    port: 8001
    },
    // 取消生成map文件(map文件可以准确的输出是哪一行哪一列有错)
    productionSourceMap: false,
    // 开发环境和部署环境的路径
    publicPath: process.env.NODE_ENV === 'production'
    ? '/'
    : '/my/',
    configureWebpack: (config) => {
    // 增加 iview-loader
    config.module.rules[0].use.push({
    loader: 'iview-loader',
    options: {
    prefix: false
    }
    })
    // 在命令行使用 vue inspect > o.js 可以检查修改后的webpack配置文件
    }
    }

    在vue项目根目录中使用命令npm run build创建输出文件,将dist文件夹下的所有内容复制到nginx目录下的webapp/内(没有的话自行创建)。

    修改nginx目录中的conf/nginx.conf文件,在 http -> server 节点中,修改location节的内容:

    location / {
    root webapp;
    index index.html index.htm;
    }

    在nginx根目录使用命令nginx -s reload即可在浏览器中通过http://localhost访问项目。

    2. 多个项目部署到Nginx

    有时一个Nginx中放了好几个子项目,需要将不同的项目通过不同的路径来访问。

    对于项目1而言,修改vue.config.js文件的publicPath:

    publicPath: '/vue1/'

    对于项目2而言,修改vue.config.js文件的publicPath:

    publicPath: '/vue2/'

    分别在vue项目根目录中使用命令npm run build创建输出文件,将dist文件夹下的所有内容复制到nginx目录下的webapp/vue1和webapp/vue2内(没有的话自行创建)。

    修改nginx目录中的conf/nginx.conf文件,在 http -> server 节点中,修改location节的内容:

    location /vue1 {
    root webapp;
    index index.html index.htm;
    }
    
    location /vue2 {
    root webapp;
    index index.html index.htm;
    }

    在nginx根目录使用命令nginx -s reload即可在浏览器中通过http://localhost/vue1http://localhost/vue2访问项目1、项目2。

    3. 端口代理

    当前后端项目分别部署在同一台机器上时,由于无法使用相同的端口,故后端一般会将端口号设置成不同的值(例如8080),但是当前端向后端请求资源时还要加上端口号,未免显得麻烦,故利用可以nginx将前端的指定路径代理到后端的8080端口上。

    在conf/nginx.conf文件中增加location:

    location /api {
    proxy_pass http://localhost:8080/api;
    }

    这样,当前端访问/api路径时,实际上访问的是http://localhost:8080/api路径。

    您可能感兴趣的文章:

    文章同步发布: https://www.geek-share.com/detail/2786605435.html

  • 相关阅读:
    网络知识===wireshark抓包,三次握手分析
    网络知识===关于MAC地址和IP不能互相替代,缺一不可的原因
    网络知识===《图解TCP/IP》学习笔记——网络的构成要素
    python基础===获取知乎标题时候,文件编码失败的总结
    Java——新IO 通道
    Java——新IO 缓冲区与Buffer
    Java——UDP
    Java——TCP
    Java——URLEncoder和URLDecoder
    Linux学习笔记<三>
  • 原文地址:https://www.cnblogs.com/xiaoqifeng/p/11998918.html
Copyright © 2011-2022 走看看