Proxy the Proxmox Web GUI with Nginx Over HTTPS - Настройка
Материал из support.qbpro.ru
- Пример настройки nginx для Proxmox:
- Для начала устанавливаем необходимые пакеты:
apt install nginx apache2-utils certbot python3-certbot python3-certbot-nginx letsencrypt
- Далее удаляем default на nginx:
rm /etc/nginx/sites-enable/default
- Генерируем пароль для предварительной авторизации (защита от ботов и скрытие консоли Proxmox)
mkdir -p /etc/nginx/auth touch /etc/nginx/auth/.htpasswd|:>/etc/nginx/auth/.htpasswd; htpasswd -p -b /etc/nginx/auth/.htpasswd MYLOGIN $(openssl passwd -1 -noverify MYPASS);
- Создаем директорию конфигураций сайтов для ssl
mkdir -p mkdir -p /etc/nginx/ssl
- Создаем там файл ssl_pve-mydomain-ru.conf содержимым:
ssl_certificate /etc/letsencrypt/live/pve.mydomain.ru/cert.pem; ssl_certificate_key /etc/letsencrypt/live/pve.mydomain.ru/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/pve.mydomain.ru/fullchain.pem;
- Для генерации сертификата используем certbot или autocertbot
- Наконец финальная версия конфигурации для входа на Proxmox:
upstream proxmox { server 127.0.0.1:8006; } server { listen 80 default_server; rewrite ^(.*) https://$host$1:443 permanent; } server { listen 443 http2; server_name proxmox.mydomain.ru; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/auth/.htpasswd; include /etc/nginx/ssl/ssl_pve-mydomain-ru.conf; add_header Strict-Transport-Security max-age=15768000; ssl on; proxy_redirect off; location / { proxy_pass https://proxmox; proxy_buffering off; proxy_buffer_size 4k; client_max_body_size 5g; proxy_connect_timeout 300s; proxy_read_timeout 300s; proxy_send_timeout 300s; send_timeout 300s; # Enable proxy websockets for the noVNC console to work proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # Standard proxying headers proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # SSL proxying headers proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Ssl on; } }
- Генерируем сертификаты, перезапускаем nginx.
- Теперь порт 8006 - можно закрыть совсем.
- ИСТОЧНИКИ: