vue项目开发好之后需要部署到服务器上进行外网访问,本篇主要介绍vue项目开发环境部署到Nginx服务器外网进行访问

部署流程:本地vue项目进行打包成静态文件,将静态文件放在Nginx服务上,配置Nginx,指定的url转发至index.html,通过Nginx反向代理代替vue.cfg.js中配置的代理

1.vue配置文件vue.cfg.js

const path = require('path')
module.exports = {
    /** 区分打包环境与开发环境
     * process.env.NODE_ENV==='production'  (生产环境)
     * process.env.NODE_ENV==='development' (开发环境)
     * baseUrl: process.env.NODE_ENV==='production'?"https://cdn.didabisai.com/front/":'front/',
     */
    publicPath : "./", // 构建好的文件输出到哪里
    outputDir: "dist", // where to put static assets (js/css/img/font/...) // 是否在保存时使用‘eslint-loader’进行检查 // 有效值: true | false | 'error' // 当设置为‘error’时,检查出的错误会触发编译失败
    lintOnSave: true, // 使用带有浏览器内编译器的完整构建版本 // https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
    runtimeCompiler: false, // babel-loader默认会跳过`node_modules`依赖. // 通过这个选项可以显示转译一个依赖
    transpileDependencies: [
        /* string or regex */
    ], // 是否为生产环境构建生成sourceMap?

    productionSourceMap: false, // 调整内部的webpack配置. // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
    chainWebpack: () => {},
    configureWebpack: () => {}, // CSS 相关选项
    css: {
        // 将组件内部的css提取到一个单独的css文件(只用在生产环境)
        // 也可以是传递给 extract-text-webpack-plugin 的选项对象
        extract: true, // 允许生成 CSS source maps?
        sourceMap: false, // pass custom options to pre-processor loaders. e.g. to pass options to // sass-loader, use { sass: { ... } }
        loaderOptions: {}, // Enable CSS modules for all css / pre-processor files. // This option does not affect *.vue files.
        modules: false
    }, // use thread-loader for babel & TS in production build // enabled by default if the machine has more than 1 cores

    parallel: require("os").cpus().length > 1, // PWA 插件相关配置 // see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa

    pwa: {}, // configure webpack-dev-server behavior
    devServer: {
        open: process.platform === "darwin",
        disableHostCheck: false,
        host: "0.0.0.0",
        port: 8088,
        https: false,
        hotOnly: false, // See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#configuring-proxy  https://1w889d7618.iok.la:25826/cv
        proxy: {
            '/api': {    // search为转发路径
                target: 'http://localhost:8080/default',  // 目标地址
                ws: true, // 是否代理websockets
                changeOrigin: true   // 设置同源  默认false,是否需要改变原始主机头为目标URL,
            }
        },// string | Object
        before: app => {}
    }, // 第三方插件配置

    pluginOptions: {
        // ...
    }
};
#执行打包命令
##根据vue配置文件会在本地根目录生成一个dist文件,该文件为vue打包好之后静态文件
npm run build

在这里插入图片描述
2.使用xshell连接上Linux服务器

##安装Nginx,建议直接通过yum安装,通过解压安装文件配置较为复杂
sudo yum install -y nginx
##启动Nginx
sudo systemctl start nginx.service
##开机自启动
sudo systemctl enable nginx.service
##开放80端口
firewall-cmd --permanent --zone=public --add-port=80/tcp
##重启防火墙
firewall-cmd --reload

3.通过xftp将打包好的静态文件放到服务器上面去,注意,放上去的文件若非root用户,需要赋予当前用户文件访问权限,否则nginx访问时会出现403无访问权限

##编辑nginx配置文件
vi /etc/nginx/nginx.conf
#进入nginx配置文件
location /system-admin-web {
  root   /home/web/;#3.dist文件的位置(我是直接放在/home/web/目录下了).注意之前dist文件必须要重命名为system-admin-web,否则服务
  try_files $uri $uri/ /index.html;  #4.重定向,内部文件index.html文件
}
location /api {  #配置请求转发
   proxy_pass http://10.166.0.109:9001/api;
}

直接访问http://localhost/system-admin-web/

Logo

前往低代码交流专区

更多推荐