# 🌐 Настройка для разных доменов (Frontend и API) ## Ситуация - **Frontend**: `nakama.glpshchn.ru` (старый домен) - **API**: `nkm.guru` (новый домен) ## ✅ Что нужно сделать ### 1. Обновить CORS на backend В файле `.env` на сервере добавьте оба домена: ```bash # Разрешить запросы с обоих доменов CORS_ORIGIN=https://nakama.glpshchn.ru,https://nkm.guru ``` Или если хотите разрешить все домены (менее безопасно, но проще): ```bash CORS_ORIGIN=* ``` ### 2. Обновить Content Security Policy В `backend/middleware/security.js` нужно разрешить подключения к новому API домену: ```javascript connectSrc: ["'self'", "https://api.telegram.org", "https://e621.net", "https://gelbooru.com", "https://nkm.guru"], ``` ### 3. Пересобрать frontend с новым API URL ```bash cd /var/www/nakama/frontend # Установить переменную окружения для сборки export VITE_API_URL=https://nkm.guru/api # Пересобрать frontend npm run build # Перезапустить nginx sudo systemctl reload nginx ``` ### 4. Перезапустить backend ```bash # Если используете PM2: pm2 restart nakama-backend # Или если используете Docker: docker-compose restart backend ``` ## 🔍 Проверка После настройки проверьте: 1. **CORS работает**: ```bash curl -H "Origin: https://nakama.glpshchn.ru" \ -H "Access-Control-Request-Method: GET" \ -H "Access-Control-Request-Headers: Content-Type" \ -X OPTIONS \ https://nkm.guru/api/health ``` 2. **В консоли браузера** (F12 → Network): - Запросы должны идти на: `https://nkm.guru/api/...` - Headers должны содержать: `Access-Control-Allow-Origin: https://nakama.glpshchn.ru` ## ⚠️ Важно 1. **Cookies**: Если используете cookies для авторизации, убедитесь, что: - `withCredentials: true` в axios (уже настроено) - `credentials: true` в CORS (уже настроено) - Cookies должны быть с правильным `SameSite` и `Secure` флагами 2. **SSL сертификаты**: Оба домена должны иметь валидные SSL сертификаты 3. **Telegram Mini App**: Если используете Telegram Mini App, убедитесь, что домен frontend добавлен в настройки бота ## 🔄 Альтернативное решение: Проксирование через nginx Если не хотите настраивать CORS, можно настроить проксирование на старом домене: ```nginx # В nginx конфигурации для nakama.glpshchn.ru location /api { proxy_pass https://nkm.guru/api; proxy_set_header Host nkm.guru; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } ``` Тогда frontend будет использовать относительный путь `/api`, а nginx будет проксировать запросы на новый домен.