пересылка proxmox vnc websocket с nginx

Я установил 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 . Что я делаю не так?

0
задан 18 October 2017 в 19:59
1 ответ

Эта конфигурация работает для меня и делает все, что вы хотите выполнить. Он также автоматически перенаправляет 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 внутри браузера без него не работает.

0
ответ дан 5 December 2019 в 07:18

Теги

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