Я установил nginx, чтобы быть ленивым, и просто зашел на proxmox.domain.com вместо proxmox.domain.com:8006, но теперь я не могу получить доступ к VNC-клиенту при подключении к первому адресу, хотя я могу сделать порт ip +. Мой друг указал, что мне нужно пересылать веб-сокеты, поэтому я нажал на клавиатуру, погуглил и нашел этот. Я перепробовал все там, но не работает. Я перезапустил nginx, и он сказал, что файл конфигурации работает.
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass https://localhost:8006;
}
location /websockify {
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:6080;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# VNC connection timeout
proxy_read_timeout 3600s;
#disable cache
proxy_buffering off;
}
location /vncws/ {
proxy_pass http://127.0.0.1:6080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
Это блок конфигурации в моем /etc/nginx/sites-enabled/proxmox
. Что я делаю не так?
Эта конфигурация подходит мне и делает все, что вам нужно. Он также автоматически перенаправляет HTTP-запросы на https. В моей конфигурации я сгенерировал свои собственные сертификаты SSL с помощью letsencrypt для правильной аутентификации CA.
upstream proxmoxhost {
server localhost:8006;
}
server {
listen 80 http2;
listen [::]:80 http2;
server_name proxmox.domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name proxmox.domain.com;
ssl_certificate /etc/dehydrated/certs/star_domain_com/fullchain.pem;
ssl_certificate_key /etc/dehydrated/certs/star_domain_com/privkey.pem;
location / {
proxy_pass https://proxmoxhost/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
}
}
Обратите внимание на косую черту в конце директивы proxy_pass, соединение VNC внутри браузера без него не работает.