Для настройки SSL для всех служб на сервере с использованием NGINX, вам следует выполнить следующие шаги:
1. Убедитесь, что у вас установлен SSL сертификат на сервере. Вы можете использовать бесплатные сертификаты от Let's Encrypt или купить платный у сертифицированных провайдеров.
2. Откройте конфигурационный файл nginx для вашего сайта (обычно находится в /etc/nginx/sites-available/your_site.conf) и добавьте следующие строки в блок server:
```
server {
listen 443 ssl;
server_name api.example.ru;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
location / {
proxy_pass http://localhost:8080; // Замените на нужный порт
proxy_set_header Host $http_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;
}
}
```
3. Перезапустите nginx, чтобы применились изменения:
```
sudo systemctl restart nginx
```
Теперь ваш сервер должен быть доступен по https://api.example.ru и использовать SSL сертификат.
Чтобы настроить перенаправление на нужные URL для служб phpmyadmin, grafana, marzban и prometheus, вы можете добавить следующие правила в ваш конфигурационный файл:
```
location /phpmyadmin/ {
rewrite ^/phpmyadmin/(.*) /$1 break;
proxy_pass http://localhost:8081/phpmyadmin/;
}
location /grafana/ {
rewrite ^/grafana/(.*) /$1 break;
proxy_pass http://localhost:3000/;
}
location /marzban/ {
rewrite ^/marzban/(.*) /$1 break;
proxy_pass http://localhost:8082/marzban/;
}
location /prometheus/ {
rewrite ^/prometheus/(.*) /$1 break;
proxy_pass http://localhost:9090/prometheus/;
}
```
После внесения изменений перезапустите сервер nginx:
```
sudo systemctl restart nginx
```
Теперь все службы должны быть доступны по URL вида https://api.example.ru/<service_name>/ без дополнительных изменений.