Ваша конфигурация Nginx настроена на проксирование нескольких служб, но так как оба сервиса используют пути `/api`, вам нужно изменить маршрутизацию так, чтобы она не конфликтовала.
Вот рекомендуемый подход:
1. Измените пути для каждой службы, чтобы они не конфликтовали. Например, вы можете переименовать путь для Grafana на `/grafana/`, как вы уже сделали, и добавить путь для API Marzban, например, на `/marzban/api/`.
2. В вашем файле конфигурации Nginx сделайте соответствующие изменения. Вот пример, как это может выглядеть:
```nginx
server {
listen 443 ssl http2;
server_name api.test.org;
ssl_certificate /var/lib/marzban/certs/fullchain.pem;
ssl_certificate_key /var/lib/marzban/certs/key.pem;
# General proxy settings for Marzban
location ~* /(dashboard|api|docs|redoc|openapi.json|statics|sub) {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
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;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# Proxy settings for Grafana
location /grafana/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
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;
proxy_redirect default;
}
}
```
3. Обратите внимание на то, что для Grafana вам нужно удостовериться, что она правильно обрабатывает префикс `/grafana/`. Настройте Grafana на использование этого префикса при ее конфигурации. Для этого в `grafana.ini` необходимо указать:
```ini
[server]
root_url = %(protocol)s://%(Domain)s:%(HTTP_PORT)s/grafana/
```
Таким образом, Grafana будет ожидать, что запросы идут по пути `/grafana/...`, и все будет работать корректно.
Если у вас есть еще службы, добавляйте их аналогично, выбирая уникальные пути для каждой службы, чтобы избежать конфликтов.