novnc shows no console

Nurtic-Vibe

New Member
Aug 3, 2017
5
0
1
32
I upgraded from Proxmox 4.4 to 5.0 and have an NGINX proxy in front of the server (no loadbalancing).
Now i don't get any console in novnc, even not on the host itself.

- Display is set to "std"
- NGINX version 1.10.3
- NGINX Proxy config:
Code:
server {
    listen [::]:80 ipv6only=on;
    listen 80 default_server;
    rewrite ^(.*) http s://$host$1 permanent;
}

server {
    listen [::]:443 ipv6only=on ssl http2;
    listen 443 ssl http2;
    server_name _;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/<DOMAIN>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<DOMAIN>/privkey.pem;

    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
    #add_header X-Frame-Options DENY;
    #add_header X-Content-Type-Options nosniff;
    ssl_session_tickets off;
    ssl_stapling on;
    ssl_stapling_verify on;

    proxy_redirect off;
    location / {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_pass http s://127.0.0.1:8006;
        proxy_buffering off;
        client_max_body_size 0;
        proxy_connect_timeout  3600s;
        proxy_read_timeout  3600s;
        proxy_send_timeout  3600s;
        send_timeout  3600s;
    }

    location /.well-known {
        root /var/www/html;
    }
}
Space in links added because of antispam measurements

- Screenshot of Browser console attached.
capture-20170803120415.PNG

Help would be very much appreciated.
 
The https in the location directive has a white space, is this in your actual config too?
 
i just tried your config here locally, (only in a debian 9 container and with the ip in proxy_pass) and it worked flawlessly
 
It worked before the update from 4.4 without any issues.
Going directly to pve-web on port 8006 works just fine, so i assume it's something wrong on the nginx side.
 
Just tried several options to delimit the error.
When changing the proxy_pass parameter and restarting NGINX, vncproxy" needs to be the first request to be sent to make it work.
All later requests show the same error.
 
Last edited:
Just tried several options to delimit the error.
When changing the proxy_pass parameter and restarting NGINX, vncproxy" needs to be the first request to be sent to make it work.
All later requests show the same error.
i guess something else in your nginx config is causing this, i used the default debian nginx config with your server block, and everything worked (i could browse the pve gui, open consoles, etc.)
 
Thanks Dominik for the insight. Just purged nginx, removed all leftover configs and started from scratch -> same issue

Update: When changing "Display" setting (to "cirrus" and back to "std") on the VM itself and then shutdown + start, the noVNC works as expected. Closing the console and opening it back up 10 minutes later shows the same issue.
 
Last edited:
a little update also on my side, i now can reproduce your issue 'sort of'
what happens is that in 90% of the time everything works as expected, and sometimes no console is shown, but as soon as i refresh the browser window it works again,

if i have a little time this week, i will try see if the problem is us/nginx/novnc/etc.
 
Same problem here, since update to proxmox v5, with my nginx reverse proxy (dedicated fresh install, debian 9 vm, let's encrypt certificate).

I've spend one day to try a lot of configurations, every time same result : connexion to novnc console seems to be ok (grey banner saying connected to qemu, and i'm able to reboot the vm by the html5 buttons), but nine out of ten i get just a black screen instead of console.

Without nginx reverse proxy and with port forwarding on TCP 8006, it's fully working.

X-Frame-Options SAMEORIGIN change nothing in my setup.

Have someone finally find a workaround for this issue ?
 
Good afternoon!
I have the same problem as rom9so

Kernel:
Code:
# uname -a
Linux pm-01 4.10.17-2-pve #1 SMP PVE 4.10.17-20 (Mon, 14 Aug 2017 11:23:37 +0200) x86_64 GNU/Linux

Nginx version:
Code:
# nginx -V
nginx version: nginx/1.10.3

Virtual host configuration:
Code:
server {
  listen 443 ssl;
  server_name pm-01.domain.tld;

  ssl_certificate /etc/letsencrypt/live/pm-01.domain.tld/fullchain1.pem;
  ssl_certificate_key /etc/letsencrypt/live/pm-01.domain.tld/privkey1.pem;
  ssl_trusted_certificate /etc/letsencrypt/live/pm-01.domain.tld/chain1.pem;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_ciphers " <Cut long SSL cipher list: mozilla>";
 
  ssl_dhparam /etc/ssl/private/dhparam.pem;
  ssl_ecdh_curve secp384r1;
  ssl_stapling on;

  resolver 8.8.8.8 8.8.4.4 valid=300s;
  resolver_timeout 5s;

  keepalive_timeout 60;
 
  access_log /var/log/nginx/pm-01.domain.tld_access.log;
  error_log /var/log/nginx/pm-01.domain.tld_error.log;

proxy_redirect off;

  location / {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_buffering off;
    client_max_body_size 1g;
   
    proxy_connect_timeout  3600s;
    proxy_read_timeout  3600s;
    proxy_send_timeout  3600s;
    send_timeout 3600s;

    proxy_pass   h_t_t_p_s://localhost:8006/;
  }
}

With direct access without proxy, the console opens without problems.
If you use a proxy server, the gray screen. Sometimes the console opens, but text input is problematic, everything is very slow.

I apply the log nginx when the console is opened

Code:
"GET /api2/json/cluster/resources HTTP/1.1" 200 611 "h_ttps://pm-01.domain.tld/" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"
"POST /api2/json/nodes/pm-01/qemu/100/vncproxy HTTP/1.1" 200 1964 "h_ttps://pm-01.domain.tld/?console=kvm&novnc=1&node=pm-01&resize=scale&vmid=100" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"
"GET /api2/json/cluster/tasks HTTP/1.1" 200 1798 "h_ttps://pm-01.domain.tld/" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"
"GET /api2/json/nodes/pm-01/qemu/100/status/current HTTP/1.1" 200 749 "h_ttps://pm-01.domain.tld/" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"
"GET /api2/json/nodes/pm-01/qemu/100/status/current HTTP/1.1" 200 786 "h_ttps://pm-01.domain.tld/" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"

The problem is repeated in browsers:
  • Mozilla Firefox 52.2.0
  • Google Chrome 60.0.3112.90
 
Same issue. One interesting observation though. If the developer console is open (to troubleshoot), the gray screen problem does not occur.
 
Hello, I have the same problem too, and your exact configuration of nginx proxy too.

It was so weird that it worked with me one day, and then today nothing works, also blank screen with noVNC, i highly doubt it's noVNC and origin scripts Javascript issue, I will try also to look at it.

But weirdly enough, the connection sometime works for a bit and then suddenly disappears.
 
Having the issue too.

Works fine with TCP forwarding mode but then the browser complains about bad certificate since it get the proxmox's host domain rather.
 
I know it has been a while since there was a response here, but I would like to add to this conversation that I have the same issue. Typing is very slow, the console sometimes doesn't load, but sometimes looks like it is taking input.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!