如何使用虚拟机部署vue.js Web应用程序?

时间:2019-04-30 04:55:16

标签: web vue.js deployment virtual-machine web-deployment

我是Web开发的新手,在部署Web应用程序时遇到问题。

上下文:

我有一个可运行的网络应用,其中包括:

1)前端:用vue.js编写,我用npm run serve运行

2)后端:用Django编写。我曾经用python manage.py runserver

由于该应用程序涉及GPU计算,因此我必须在部门服务器上运行它。为了查看它,我使用SSH端口转发将前端和后端转发到本地主机(以便可以从本地主机:16006访问它)。可以。

现在,我需要将该网站公开发布。我的部门为我设置了Ubuntu 18.04.2虚拟机(使用ufw作为其防火墙软件,并允许所有出站连接以及入站ssh,http和https):

  

layout2im.cs.ubc.ca

问题

我将代码拉到该VM并安装了相关的依赖项/软件包。对于前端,我像这样配置vue.config.js:

const BundleTracker = require("webpack-bundle-tracker");

module.exports = {
    publicPath: '',
    outputDir: './dist/',

    chainWebpack: config => {

        config.optimization
            .splitChunks(false)

        config
            .plugin('BundleTracker')
            .use(BundleTracker, [{filename: '../frontend/webpack-stats.json'}])

        config.resolve.alias
            .set('__STATIC__', 'static')

        config.devServer
            .public('https://layout2im.cs.ubc.ca:80')
            .host('0.0.0.0')
            .port(80)
            .hotOnly(true)
            .watchOptions({poll: 1000})
            .https(true)
            .headers({"Access-Control-Allow-Origin": ["\*"]})
            .open(true)
    }
};

然后我npm run serve表示应用程序在

上运行
App running at:
  - Local:   https://localhost:1024
  - Network: https://layout2im.cs.ubc.ca:80/

但是我无法在浏览器中打开https://layout2im.cs.ubc.ca:80/。 (我尝试使用端口443,但也不起作用)

  

无法访问此网站
  layout2im.cs.ubc.ca拒绝连接。

(我不知道这是否相关,但我也尝试过npm run build,而dist/index.html包含:

<noscript><strong>
We're sorry but frontend doesn't work properly without JavaScript enabled. Please enable it to continue.
</strong></noscript>

我什至不确定自己是否走对了。如果有人可以指出我的错误以及如何正确使用虚拟机来部署此网站,那将是非常不错的。 (例如,我需要Docker吗?)

0 个答案:

没有答案