решаемые
Ошибка произошла от NODE_HOST, который был localhost, а не IP-адрес сервера
У меня проблемы с развертыванием моего приложения реагирования на сервере, я использую код для локального программирования и хочу развернуть его на сервере.
Итак, я использую React с webpack и Express на nodejs.
Сервер :
- Запуск по порту 3002
- Подключен к серверу mongodb через порт 27017
Реакция :
Развернуто с помощью веб-пакета со следующей конфигурацией:
module.exports = webpackMerge(commonConfig, {
devtool: 'source-map',
output: {
path: path.resolve(__dirname, '..', 'dist'),
publicPath: '/',
filename: '[name].js',
},
plugins: [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('production'),
NODE_HOST : JSON.stringify(process.env.NODE_HOST || 'localhost'),
NODE_PORT : JSON.stringify(process.env.NODE_PORT || 8081)
},
})
],
});
Итак, я запускаю следующую команду для создания моего приложения:
NODE_PORT=3002 NODE_HOST=localhost yarn build
Затем создается папка dist / , и я копирую все файлы из этой папки в html-папку nginx:
cp -R dist/* /usr/share/nginx/html/
Теперь мне нужно настроить nginx, чтобы он мог использовать API, это мой файл nginx.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
location / {
try_files $uri /index.html;
}
location /api {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:3002;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
Затем, когда я реагирую на порт 80, я вижу свою домашнюю страницу, а также некоторые GET запросы и OPTIONS запросов дают мне 200, но когда я пытаюсь сделать запрос POST, он возвращает мне 404.
Я не понимаю, какая часть отсутствует в моей конфигурации, NODE_HOST и NODE_PORT правильно исправлены, а сборка выполнена правильно.
Я также не знаю, правильно ли настроен реагирующий маршрутизатор, в основном следующие маршруты:
<server_ip>/#/login
будет перенаправлен, если работает процесс аутентификации.
<server_ip>/#/
Примечание
Привет