На сервере есть службы: phpmyadmin, grafana, marzban, prometheus
Мне нужно написать максимально простой конфиг на Nginx, который перенаправит все эти службы сохранив их работоспособность на:
https://api.example.ru/phpmyadmin/
https://api.example.ru/grafana/
https://api.example.ru/marzban/
https://api.example.ru/prometheus/
Сейчас возникает проблема с тем, что службы которые работают по умолчанию из корня без дополнительных перенаправлений при заходе на url, кое-как работают.
У Grafana приходится менять root-url в настройках конфига, Marzban соглашается работать только из директории "/", отказывается работать если заменить на другой каталог в URL.
Может есть какой-то простой способ который подойдет для служб независимо от того какой у них root-url и стандартный вход. Не принципиально если не будет каталогов, если они будут доступны по https ссылкам уже хорошо.
Конфиг который использую сейчас:
server {
listen 80;
server_name 228.45.40.50;
location / {
return 301 https://api.example.ru$request_uri;
}
}
server {
listen 443 ssl;
server_name 228.45.40.50;
ssl_certificate /var/lib/marzban/certs/fullchain.pem;
ssl_certificate_key /var/lib/marzban/certs/key.pem;
location / {
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_redirect default;
}
location /phpmyadmin/ {
proxy_pass http://127.0.0.1:8010/;
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;
}
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;
}
}