URL экземпляра ec2 показывает файлы вместо запуска приложения - PullRequest
1 голос
/ 26 апреля 2019

У меня есть приложение deploye response + node в экземпляре ec2 и установлен pm2 для запуска приложения в фоновом режиме. Когда я запустил npm, запустите build и server -s build . Экземпляр Ec2 запущен и приложение доступно, но я установил pm2 и запустил приложение, используя pm2 start serve Приложение успешно запущено enter image description here

но когда я получаю доступ к URL-адресу экземпляра ec2, я получаю файловую структуру пользователя ec2 вместо веб-сайта

enter image description here

Вчера все работало, но вдруг это так показывается? Пожалуйста, проверьте и дайте мне ваш ценный отзыв

1 Ответ

2 голосов
/ 27 апреля 2019

Существует множество способов создания и обслуживания.

pm2 serve выполняет обслуживание статических файлов.Команда pm2 serve ./build <PORT>, а также проверьте, указываете ли вы путь к папке [т.е. ./build здесь], откуда он должен служить.убедитесь, что вы уже сделали yarn build.


Способ 1

Я думаю, вы обслуживаете его из каталога ./build.и он содержит в основном статические файлы,

, поэтому вы можете создать простой экспресс-сервер, который может обслуживать эти файлы из ./build

и добавить этот файл в каталог вашего проекта:

server.js

const express = require("express");
const path = require("path");
const app = express();

app.use(express.static(path.join(__dirname, "build")));

app.get("/*", function(req, res) {
  res.sendFile(path.join(__dirname, "build", "index.html"));
});
const PORT =process.env.FRONT_PORT || 9000;
app.listen(PORT,()=>{
  console.log('listning at :' + PORT)
});

Как вы можете видеть, в приведенном выше примере я использовал express.js, вы также должны установить его (npm i express -S).

теперь вы просто идете в каталог проекта и запускаете свое приложение следующим образом: pm2 start server.js --name <NAME OF THE AP>

убедитесь, что перед началом работы с этой командой abve выполните сборку с помощью yarn build, который создаст каталог сборки, и мы используем его внутри server.js.


Путь 2

.выше шаги и добавьте server.js также.теперь позволяет автоматизировать yarn build.

теперь создайте файл start.sh, в котором находится server.js.

start.sh

#!/bin/bash
yarn build && node ./server.js

вы можете запустить это с помощью pm2 start start.sh --name <APP NAME>, и он создаст и запустит server.js.

* ПРИМЕЧАНИЕ: этот последний процесс, т. Е. Со сборкой пряжи, может быть невозможенв тех случаях, когда процессор или ресурсы очень малы, например, если вы используете t.micro или что-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...