- Add simple ProxyPass configuration matching existing patterns - Provide two variants: backend-only vs frontend/backend split - Recommend variant 2 for better performance Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
2.5 KiB
2.5 KiB
Apache Configuration - Simple Version
Для ai-sandbox.oliver.solutions
Вариант 1: Только Backend Proxy (проще, но медленнее)
Backend FastAPI будет serve и static files и API:
# Oliver Metadata Tool - Backend only
ProxyPass /solventum-image-metadata/ http://localhost:5001/
ProxyPassReverse /solventum-image-metadata/ http://localhost:5001/
ProxyTimeout 600
Требует: Backend должен serve статические файлы React (добавить StaticFiles в FastAPI)
Вариант 2: Разделение Frontend/Backend (быстрее, рекомендую)
Frontend - static files, Backend - только API:
# Oliver Metadata Tool - Frontend static files
Alias /solventum-image-metadata /var/www/html/solventum-image-metadata
<Directory /var/www/html/solventum-image-metadata>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
# React Router support
RewriteEngine On
RewriteBase /solventum-image-metadata
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/solventum-image-metadata/api/
RewriteRule ^ /solventum-image-metadata/index.html [L]
</Directory>
# Backend API - FastAPI
ProxyPass /solventum-image-metadata/api/ http://localhost:5001/
ProxyPassReverse /solventum-image-metadata/api/ http://localhost:5001/
ProxyTimeout 600
Преимущества:
- Apache serve статику быстрее чем FastAPI
- Backend занимается только API логикой
- Лучше кеширование static assets
Что использовать?
Рекомендую Вариант 2 - разделение Frontend/Backend.
Просто добавьте эти строки в существующую конфигурацию Apache.
После изменения Apache:
# Проверить конфиг
sudo apache2ctl configtest
# Reload Apache
sudo systemctl reload apache2
Также обновите .env на сервере:
sudo nano /opt/solventum-image-metadata/.env
# Добавьте /api/ в REDIRECT_URI:
REDIRECT_URI=https://ai-sandbox.oliver.solutions/solventum-image-metadata/api/auth/microsoft/callback
Проверка:
# Frontend (static files через Apache)
curl https://ai-sandbox.oliver.solutions/solventum-image-metadata/
# Backend API (proxy через Apache)
curl https://ai-sandbox.oliver.solutions/solventum-image-metadata/api/health