摘要:文中将介绍在多节点和多网口的情况下怎样配置NoVNC,达到在浏览器中可以访问虚拟机的目的。
一,noVNC在控制节点上的配置
openstack的安装配置不是本文的重点,请参考其他文档做安装和配置。
在/etc/nova/nova.conf中的关于NoVNC的配置如下:
- #novnc
- --vnc_enabled=True
- --vnc_console_proxy_url=
- --vncproxy_wwwroot=/opt/noVNC
- --vncproxy_url=
配置中的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=/vnc_auto.html
- --xvpvncproxy_base_url=
- # 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,服务得到响应。
阅读(4157) | 评论(0) | 转发(1) |