Как опубликовать asp.net core + react js на centos 7?

Чтобы опубликовать ASP.NET Core + React.js приложение на CentOS 7, вам понадобятся следующие шаги:

Шаг 1: Установка необходимых компонентов

  1. Установите .NET Core SDK на ваш сервер CentOS 7. Для этого выполните следующие команды:
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-3.1
  1. Установите Node.js и npm, которые необходимы для работы с React.js:
sudo yum install epel-release
sudo yum install nodejs
sudo yum install npm

Шаг 2: Создание проекта React.js

  1. Создайте новый проект React.js с помощью следующей команды:
npx create-react-app my-react-app
  1. Перейдите в папку вашего проекта:
cd my-react-app
  1. Запустите проект для проверки его работоспособности:
npm start

Шаг 3: Создание ASP.NET Core приложения

  1. Создайте новый ASP.NET Core проект с помощью следующей команды:
dotnet new webapi -n my-webapi-app
  1. Перейдите в папку вашего проекта:
cd my-webapi-app
  1. Откройте файл "Startup.cs" и добавьте следующий код в метод "ConfigureServices":
services.AddSpaStaticFiles(configuration =>
{
    configuration.RootPath = "ClientApp/build";
});
  1. Добавьте следующий код в метод "Configure":
app.UseStaticFiles();
app.UseSpaStaticFiles();
app.UseSpa(spa =>
{
    spa.Options.SourcePath = "ClientApp";
    if (env.IsDevelopment())
    {
        spa.UseReactDevelopmentServer(npmScript: "start");
    }
});

Шаг 4: Публикация приложения

  1. Откройте файл "my-webapi-app.csproj" и добавьте следующий код в элемент "PropertyGroup":
<SpaRoot>ClientApp</SpaRoot>
<DefaultItemExcludes>$(DefaultItemExcludes);$(SpaRoot)node_modules**</DefaultItemExcludes>
  1. Запустите следующую команду для публикации приложения:
dotnet publish -c Release -o /var/www/my-webapi-app

Шаг 5: Настройка и запуск приложения

  1. Создайте новый файл конфигурации для Nginx:
sudo nano /etc/nginx/conf.d/my-webapi-app.conf
  1. Добавьте следующий код в файл конфигурации:
server {
    listen        80;
    server_name   your-domain.com;

    location / {
        proxy_pass         http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }

    location /static {
        alias /var/www/my-webapi-app/ClientApp/build/static;
    }
}
  1. Сохраните файл конфигурации и закройте его.
  2. Перезапустите службу Nginx, чтобы внести изменения в конфигурацию:
sudo systemctl restart nginx
  1. Запустите ASP.NET Core приложение с помощью следующей команды:
dotnet /var/www/my-webapi-app/my-webapi-app.dll

Теперь ваше ASP.NET Core + React.js приложение должно быть доступно по адресу вашего сервера CentOS 7. Не забудьте заменить "your-domain.com" в коде конфигурации Nginx на реальный домен вашего сервера, чтобы обеспечить корректное функционирование приложения.