я развернул свое приложение стека mern в экземпляре aws ec2. проблема в том, что мое приложение для реагирования прослушивает порт 3000, а мое приложение nodejs прослушивает порт 5000, и я также использовал tus-сервер в узле js, который прослушивает порт 8000, как настроить файл ngnix.
server {
listen 80;
location / {
proxy_pass http://PRIVATE_IP_EC2:3000;
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;
}
}
Если я запущу вышеуказанную конфигурацию в ngnix, тогда будет запущено только реагирующее приложение, тогда я не смогу отправить какие-либо файлы на сервер nodejs. Что я могу сделать, я хочу, чтобы все порты работали.





Вы можете создать другую конфигурацию nginx с вашим поддоменом (который будет указывать на ваше приложение node (я думаю, на ваш бэкэнд). Затем в вашем приложении для реагирования используйте свой субдомен для подключения к вашему внутреннему API.
Вы можете добавить другое место в тот же файл конфигурации nginx с некоторым префиксом, на котором вы хотите запустить свое приложение.
Например, если все URL-адреса API приложения nodejs начинаются с префикса /апи, вы можете использовать его как
location ^~ /api/ {
proxy_pass http://PRIVATE_IP_EC2:YOUR_NODEJS_APP_PORT;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;`enter code here`
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
У меня такое ощущение, что если ваше приложение React прослушивает порт 3000, значит, вы делаете что-то не так. Разве ваш сервер create-react-app не прослушивает порт 3000? Если это так, вы должны знать, что этот сервер в основном предназначен для разработки, а не для производства.
Если это так, то вам нужно build приложение React с помощью команды npm build. После создания статического веб-сайта вы можете выбрать хостинг. Предпочтительный способ в AWS — настроить корзину S3 для использования функции хостинга веб-сайтов (вам не нужно настраивать какой-либо веб-сервер, такой как Nginx) и загрузить содержимое папки build в вашем приложении React в эту корзину S3. Если вы выберете этот маршрут, не забудьте добавить общедоступный доступ для чтения к своей корзине.