Развертывание веб-приложения MERN stack на сервере Ubuntu (Alibaba ECS)

Я создаю веб-приложение, используя MongoDB, ExpressJS, ReactJS (create-response-app) и NodeJS. Я закончил с разработкой, теперь я хочу развернуть это веб-приложение на сервере Ubuntu.

Мои файловые структуры выглядят так: Нажмите, чтобы просмотреть изображение

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.


person Avi    schedule 24.09.2018    source источник


Ответы (1)


Это просто, вам нужно запустить пару команд, которые успешно развернут и ваш сервер, и код реакции,

Предполагая, что у вас не установлен графический интерфейс, мы должны использовать что-то под названием screen

  1. ssh ваш экземпляр через putty / аналогичную программу. [корень ssh @ ‹ipaddress>]
  2. после входа в систему вам нужно ввести screen (это даст вам отдельное окно для запуска ваших команд)
  3. cd в каталог вашего сервера и запустите npm start (это запустит код вашего сервера)
  4. Затем нажмите CTRL-A, затем CTRL-D, это отключит процесс.
  5. Снова введите screen, а затем cd в каталог реакции и запустите npm start. Это заставит ваше приложение реагировать на запуск. Затем отсоедините процесс.
  6. Вы можете выйти из сеанса сейчас / выйти из терминала.

Наконец, также убедитесь, что порты открыты для доступа через Интернет / Интранет.

person Hard Coder    schedule 28.09.2018
comment
Спасибо за любезный подробный ответ. Я пытался сделать то же самое, но сайт был недоступен из Интернета. Основная проблема заключалась в том, что я не настраивал безопасность для порта 80. - person Avi; 29.09.2018
comment
Идеально!! Надеюсь, что теперь это сработает :) Принять и проголосовать, если помогло - person Hard Coder; 30.09.2018