У меня есть одно приложение Node.js, и пользователь использует React. Когда я разрабатываю его на своем локальном компьютере, я помещаю проект в подкаталог http://localhost/app, а api - в /api
, порт, который я использую, - 5000. Все работает. Вот способ, которым я установил:
Для Node.js, я использую это для установки каталога и маршрутизатора Frontend:
const indexRouter = require('./routers')
app.use('/api', indexRouter) //to set API path
app.use('/app', express.static('public'))
сервер прослушивает 5000.
Для React я обновляю пакет. json до:
"homepage": "/app",
"proxy": "http://localhost:5000/"
и с помощью запроса Ax ios я добавляю базовую переменную в начале запроса путь и установите его в '/ api'
Это все хорошо на моем локальном хосте. Однако, когда я развернул его на AWS с Nginx, я не смог выполнить запрос API успешно.
При Nginx я обновляю исходный блок местоположения с
location / {
try_files $uri $uri/ = 404;
}
до
location /app {
proxy_pass http://localhost:5000;
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;
}
Когда я go до /root/app
, я вижу домашняя страница React (я скопировал файлы сборки React в папку Node js publi c). Тем не менее, он не может получить запрос успешно. Я вижу на своем локальном хосте путь запроса http://localhost: 3050 / api / login , но путь запроса живого сервера http://domain_name / login , я не знаю, почему сервер не может go до /api
для запроса.
Я надеюсь, что кто-то может помочь мне в этом.