Как опубликовать 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

2. Установите 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

2. Перейдите в папку вашего проекта:

cd my-react-app

3. Запустите проект для проверки его работоспособности:

npm start

Шаг 3: Создание ASP.NET Core приложения
1. Создайте новый ASP.NET Core проект с помощью следующей команды:

dotnet new webapi -n my-webapi-app

2. Перейдите в папку вашего проекта:

cd my-webapi-app

3. Откройте файл "Startup.cs" и добавьте следующий код в метод "ConfigureServices":

services.AddSpaStaticFiles(configuration =>
{
    configuration.RootPath = "ClientApp/build";
});

4. Добавьте следующий код в метод "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>

2. Запустите следующую команду для публикации приложения:

dotnet publish -c Release -o /var/www/my-webapi-app

Шаг 5: Настройка и запуск приложения
1. Создайте новый файл конфигурации для Nginx:

sudo nano /etc/nginx/conf.d/my-webapi-app.conf

2. Добавьте следующий код в файл конфигурации:

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;
    }
}

3. Сохраните файл конфигурации и закройте его.
4. Перезапустите службу Nginx, чтобы внести изменения в конфигурацию:

sudo systemctl restart nginx

5. Запустите ASP.NET Core приложение с помощью следующей команды:

dotnet /var/www/my-webapi-app/my-webapi-app.dll

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