"pm2 serve build PORT" эхо 404 не найдено - PullRequest
0 голосов
/ 18 сентября 2018

Я сделал этот урок,

https://reactjs.org/tutorial/tutorial.html

Затем загрузил его на рабочий сервер, на Ubuntu nginx с SSL. Запустил npm run build, создал файлы сборки и обслужил статические файлы с помощью обслуживающего модуля serve -s -p 8083 build. Он работает нормально на порту 8083.

Но когда я пытаюсь добавить его в качестве pm2 службы pm2 serve ./build/ 8083, я получаю 404 не найден (когда он не работает, ошибка 502 Bad Gateway)

Я пробовал несколько способов, с pm2 serve ./ 8083, pm2 serve ./public/ 8083 и т. Д.

Конфигурация Nginx:

    location ~* /.(js|jpg|png|css)$ {
     access_log off;
     expires max;
    }
    location = /react-game {
    root /var/www/test.com/html/react-game/build;
    proxy_pass http://localhost:8083;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    autoindex off;
    }

Есть идеи, как скопировать serve -s -p 8083 build с pm2?

Спасибо!

1 Ответ

0 голосов
/ 18 сентября 2018

Я думаю, что главная проблема в том, что serve предназначена для обслуживания статических файлов, а pm2 - для постоянного запуска скрипта. Вот статья про служение реакции с pm2:

https://ygamretuta.xyz/deploy-create-react-app-with-pm2-16beb90ce52

Но есть ли причина, по которой вы не хотите просто заставить nginx прослушивать порт 8083 и обслуживать файлы сборки статически? Или есть причина, по которой вы не обслуживаете файлы сборки на порту 80?

...