openstack中NoVNC的配置

本文详细介绍了如何在多节点和多网口的环境中配置NoVNC,实现通过浏览器访问虚拟机的功能。主要内容包括控制节点与被控制节点的NoVNC配置方法,以及对qemu配置文件的必要调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:文中将介绍在多节点和多网口的情况下怎样配置NoVNC,达到在浏览器中可以访问虚拟机的目的。

         VNC (Virtual Network Computing)网络遥控技术是指由一部计算机(主控端)去控制另一部计算机(被控端),而且当主控端在控制端时,就如同用户亲自坐在被控端前操作一样,可以执行被控端的应用程序,及使用被控端的系统资源。

一,noVNC在控制节点上的配置
      
    openstack的安装配置不是本文的重点,请参考其他文档做安装和配置。
    在/etc/nova/nova.conf中的关于NoVNC的配置如下:

#novnc
--vnc_enabled=True
--vnc_console_proxy_url=http://controllereth0:6080
--vncproxy_wwwroot=/opt/noVNC
--vncproxy_url=http://controllereth0:6080
     配置中的controllereth0为对外提供服务的ip。
      如果不是自己源码安装noVNC的话,不需要--vncproxy_wwwroot,否则需要配置noVNC的具体位置。
     在对noVNC进行配置的时候,请认真理解noVNC的实际工作原理。noVNC实际上是http请求的代理,将http的请求转发到具体的VNC服务器上。

二,noVNC在被控制节点上的配置

#novnc
# These flags help construct a connection data structure
--vncserver_proxyclient_address=computeeth1
--novncproxy_base_url=http://controllereth0:6080/vnc_auto.html
--xvpvncproxy_base_url=http://controllereth0:6081/console
# This is the address where the underlying vncserver (not the proxy)
# will listen for connections.
--vncserver_listen=computeeth1
     配置文件中的computeeth1 为被控制服务器的内网ip,controllereth0为控制节点的外网ip。 注意控制节点和被控制节点的内网(eth1)要能够互相访问。
     在实际配置的过程中,往往这么配置也不能够通过浏览器访问到虚拟机的VNC服务,是因为我们还需要修改qemu的配置文件,让VNC服务器对内网监听(eth1)
      将/etc/libvirt/qemu.conf中的
      vnc_listen = "127.0.0.1"
      修改为:
      vnc_listen = "eth1ip"
      这样实际的VNC服务就会对内网(eth1)监听了。
 
三,总结
       从noVNC的工作原理我们不难看出,实际还是一个proxy的过程。
       外网的VNC http请求的大概过程为:
       VNC request<-------------->controller noVNC server(eth0)<---proxy------> controller(eth1)<-----------------> compute VNC server (eth1)
         经过这样一个过程,请求最终达到VNC server,服务得到响应。

转载于:https://my.oschina.net/OQKuDOtsbYT2/blog/119970

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值