Проблемы с развертыванием Node и реагированием приложения на сервере - PullRequest
0 голосов
/ 25 января 2019

решаемые Ошибка произошла от 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.

enter image description here

Я не понимаю, какая часть отсутствует в моей конфигурации, NODE_HOST и NODE_PORT правильно исправлены, а сборка выполнена правильно. Я также не знаю, правильно ли настроен реагирующий маршрутизатор, в основном следующие маршруты:

<server_ip>/#/login

будет перенаправлен, если работает процесс аутентификации. <server_ip>/#/

Примечание

  • Я использую тот же сервер mongodb для локальной разработки и могу войти в систему.

  • У меня нет ошибок на выходе узла

Привет

...