【问题标题】:Deploying MERN stack web app on Ubuntu server(Alibaba ECS)在 Ubuntu 服务器(阿里巴巴 ECS)上部署 MERN stack web 应用程序
【发布时间】:2019-02-27 20:32:05
【问题描述】:

我正在使用 MongoDB、ExpressJS、ReactJS(create-react-app) 和 NodeJS 构建一个 Web 应用程序。我已经完成了开发部分,现在我想将此 Web 应用程序部署到 Ubuntu 服务器。

我的文件结构看起来像这样Click to view image

package.json(服务器)

{
    "name": "pair-programming",
    "version": "1.0.0",
    "description": "pair-programming web app for codechef's hackathon",
    "main": "server.js",
    "scripts": {
        "client-install": "npm install --prefix client",
        "start": "node server.js",
        "server": "nodemon server.js",
        "client": "npm start --prefix client",
        "dev": "concurrently \"npm run server\" \"npm run client\"",
        "serve-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"
    },
    "author": "Parmeet Singh",
    "license": "ISC",
    "dependencies": {
        "bcryptjs": "^2.4.3",
        "body-parser": "^1.18.3",
        "concurrently": "^4.0.1",
        "express": "^4.16.3",
        "jsonwebtoken": "^8.3.0",
        "mongodb": "^3.1.6",
        "mongoose": "^5.2.13",
        "node-uuid": "^1.4.8",
        "nodemailer": "^4.6.8",
        "passport": "^0.4.0",
        "passport-jwt": "^4.0.0",
        "request": "^2.88.0",
        "sprintf-js": "^1.1.1",
        "validator": "^10.7.1"
    },
    "devDependencies": {
        "nodemon": "^1.18.4"
    }
}

package.json(反应)

{
    "name": "client",
    "version": "0.1.0",
    "private": true,
    "dependencies": {
        "axios": "^0.18.0",
        "classnames": "^2.2.6",
        "jwt-decode": "^2.2.0",
        "react": "^16.5.1",
        "react-dom": "^16.5.1",
        "react-redux": "^5.0.7",
        "react-router-dom": "^4.3.1",
        "react-scripts": "1.1.5",
        "redux": "^4.0.0",
        "redux-thunk": "^2.3.0"
    },
    "scripts": {
        "start": "react-scripts start",
        "build": "react-scripts build",
        "test": "react-scripts test --env=jsdom",
        "eject": "react-scripts eject"
    },
    "proxy": "http://0.0.0.0:5000"
}

所以,如果可能的话,请帮我将此网络应用程序部署到 ubuntu 服务器。我之前没有在ubuntu上部署过。

【问题讨论】:

    标签: node.js reactjs ubuntu deployment alibaba-cloud


    【解决方案1】:

    这很简单,你需要运行几个命令来成功部署你的服务器和反应代码,

    假设您没有安装任何 GUI,我们必须使用名为 screen 的东西

    1. 通过 putty/similar 程序对您的实例进行 ssh。 [ssh root@]
    2. 登录后,您需要输入 screen(这将为您提供一个单独的窗口来运行您的命令)
    3. cd 到您的服务器目录并运行 npm start(这将启动您的服务器代码)
    4. 然后按CTRL-A 然后按CTRL-D 这将分离进程。
    5. 再次输入 screen 然后cd 到反应目录并运行npm start。这将使您的反应应用程序运行。然后分离进程。
    6. 您现在可以注销会话/退出终端。

    最后,还要确保打开端口以便通过 Internet/Intranet 访问。

    【讨论】:

    • 感谢您的详细回答。我试图做同样的事情,但无法从互联网访问该网站。主要问题是我没有为端口 80 设置安全性。
    • 完美!!希望现在有效:) 如果有帮助,请接受并支持
    猜你喜欢
    • 2020-09-11
    • 2021-11-02
    • 2020-09-22
    • 2019-07-04
    • 2019-12-25
    • 2020-06-28
    • 2021-03-01
    • 1970-01-01
    • 2019-02-22
    相关资源
    最近更新 更多