Чтобы опубликовать 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 на реальный домен вашего сервера, чтобы обеспечить корректное функционирование приложения.