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 - можно закрыть совсем.
- ИСТОЧНИКИ:
