Задать вопрос
WhiteHatqq
@WhiteHatqq

Как настроить все службы на сервере в своих каталогах через ssl с NGINX?

На сервере есть службы: 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;
        }
}
  • Вопрос задан
  • 417 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Не пробовали такое?
location /marzban/ {
    alias /path/to/marzban/root/;
}


P.S. И в оба server_name нужно через пробел вписывать api.example.ru.
Ответ написан
Немного схожую задачу решил установкой Nginx Proxy Manager, и настройкой отдельных субдоменов для каждого сервиса с его дефолтными портами и пробросом на 80 и 443
663a857d3b3d8327879032.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы