Развертывание обратного прокси приложений React - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь развернуть несколько контейнерных SPA, используя обратный прокси-сервер для обработки маршрутизации к каждому.В текущей настройке каждый контейнер имеет производственную сборку create-реакции-приложение, обслуживаемую экспресс-приложением, которое по существу состоит из:

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

app.use('/*', (req, res) => {
    res.sendFile(path.join(__dirname, '..', 'build', 'index.html'));
});)

Я настроил сервер nginx со следующими параметрами:

server {
    listen 8081;
    server_name example.domain.com;
    location /app1 {
        rewrite ^/(.*) /$1 break;
        proxy_ignore_client_abort on;
        proxy_pass http://localhost:3100;
        proxy_redirect http://localhost:3100 https://example.domain.com/app1;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  Host $http_host;
    }
}

Прокси-сервер работает так же, как когда я перехожу на http://localhost:8081/app1, загружается index.html встроенного приложения React, но все связанные js-файлы равны 404. Я попытался установить "homepage": "/app1" в приложении React.package.json но, похоже, это ничего не меняет.Он все еще ищет в комплекте js-файлы в корне сервера: Request URL: http://localhost:8081/static/js/bundle.js

Я не знаю, что делать дальше, любая помощь будет высоко ценится.

Бест,

П

1 Ответ

0 голосов
/ 11 февраля 2019

Вам необходимо добавить статическое промежуточное ПО, т.е.

app.use(express.static('static'))

Или

app.use('static', express.static('static'))

static - это имя папки всех ваших статических активов.См .: https://expressjs.com/en/starter/static-files.html

Обновлено:

Если у вас есть папка «static» в «build», используйте:

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

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