采用Xen虚拟机设置多个单独的WEB网站
来源:互联网 发布:java int 取整 编辑:程序博客网 时间:2024/05/10 20:50
如果想使用一台机器来支持多个WEB网站,传统的做法是采用虚拟主机,但是当多个网站都需要共享MySQL等数据库或者其它资源时,就比较麻烦,如果给每个WEB网站一个虚拟机,就可以完全独立运行,还可以随时迁移,效果当然不可同日而语啦。本人最近通过实践,找到一个方法,完全可以实现,只需要2个步骤:启动XEN虚拟机,运行所需的WEB网站服务;在宿主机上采用Iptables设置NAT网络将外网的访问定位到虚拟机的地址,或者通过宿主机上Apache rewrite规则将外网的访问重新定向到虚拟机上。虚拟机运行及WEB网站的开发运行,这里不再赘述,本文主要探讨如何进行访问重定向。
1) NAT
比如外网地址为202.102.32.65,虚拟机的地址为192.168.122.196。
首先将虚拟机的地址固定,而不是采用默认的DHCP,编辑/etc/xen下面对应的配置文件,比如:
vif = [ "mac=00:16:36:3d:6d:60,ip=192.168.122.196,bridge=virbr0,script=vif-bridge" ]
然后,在虚拟机上将IP地址设为静态的192.168.122.30。
最后,在宿主机上重定向端口访问,比如将所有访问外网地址202.102.32.65上8080端口的请求重新定向到192.168.122.196上的80端口,只需在宿主机上执行如下命令即可:
iptables -t nat -A PREROUTING -j DNAT -p tcp -m tcp --dport 8080 --to-destination 192.168.122.30:80
2) Apache虚拟主机的Rewrite规则
虚拟机建好后,一般在宿主机上可以直接访问,因此可以在通过宿主机上建立apache的虚拟机主机,在其中直接将访问虚拟机的请求rewrite到虚拟机上,可以把如下代码直接贴到httpd.conf中。
NameVirtualHost 202.102.32.65
<VirtualHost 202.102.32.65>
ServerName 202.102.32.65
DocumentRoot /opt/lampp/htdocs
</VirtualHost>
#如果你想在现有的web服务器上增加虚拟主机, 你必须也为现存的主机建造一个<VirtualHost>定义块。 这个虚拟主机中
<VirtualHost 202.102.32.65>
ServerAdmin admin@myhome.com
ServerName www.myhome.com
ServerAlias myhome.com *.myhome.com
CustomLog logs/server.cn-access.log combined
ErrorLog logs/server.cn-error.log
LogLevel warn
RewriteEngine On
ProxyRequests On
RewriteLog logs/server.cn.rewrite.log
RewriteLogLevel 2
RewriteRule ^/icons/ - [L]
RewriteRule ^/(.*)$ http://192.168.122.30/$1 [L,P]
</VirtualHost>
然后在DNS上将www.myhome.com指向外网地址202.102.32.65上,然后直接访问www.myhome.com即可得到虚拟机上的网页地址。
1) NAT
比如外网地址为202.102.32.65,虚拟机的地址为192.168.122.196。
首先将虚拟机的地址固定,而不是采用默认的DHCP,编辑/etc/xen下面对应的配置文件,比如:
vif = [ "mac=00:16:36:3d:6d:60,ip=192.168.122.196,bridge=virbr0,script=vif-bridge" ]
然后,在虚拟机上将IP地址设为静态的192.168.122.30。
最后,在宿主机上重定向端口访问,比如将所有访问外网地址202.102.32.65上8080端口的请求重新定向到192.168.122.196上的80端口,只需在宿主机上执行如下命令即可:
iptables -t nat -A PREROUTING -j DNAT -p tcp -m tcp --dport 8080 --to-destination 192.168.122.30:80
2) Apache虚拟主机的Rewrite规则
虚拟机建好后,一般在宿主机上可以直接访问,因此可以在通过宿主机上建立apache的虚拟机主机,在其中直接将访问虚拟机的请求rewrite到虚拟机上,可以把如下代码直接贴到httpd.conf中。
NameVirtualHost 202.102.32.65
<VirtualHost 202.102.32.65>
ServerName 202.102.32.65
DocumentRoot /opt/lampp/htdocs
</VirtualHost>
#如果你想在现有的web服务器上增加虚拟主机, 你必须也为现存的主机建造一个<VirtualHost>定义块。 这个虚拟主机中
ServerName
和DocumentRoot
所包含的内容应该与全局的ServerName
和DocumentRoot
保持一致。 还要把这个虚拟主机放在配置文件的最前面,来让它扮演默认主机的角色。<VirtualHost 202.102.32.65>
ServerAdmin admin@myhome.com
ServerName www.myhome.com
ServerAlias myhome.com *.myhome.com
CustomLog logs/server.cn-access.log combined
ErrorLog logs/server.cn-error.log
LogLevel warn
RewriteEngine On
ProxyRequests On
RewriteLog logs/server.cn.rewrite.log
RewriteLogLevel 2
RewriteRule ^/icons/ - [L]
RewriteRule ^/(.*)$ http://192.168.122.30/$1 [L,P]
</VirtualHost>
然后在DNS上将www.myhome.com指向外网地址202.102.32.65上,然后直接访问www.myhome.com即可得到虚拟机上的网页地址。
- 采用Xen虚拟机设置多个单独的WEB网站
- xen虚拟机的linux系统时间设置
- xen虚拟机网络设置
- 设置Xen虚拟机自动启动
- web.config单独设置特定目录或页面的编码
- xen虚拟机测试的结果
- Xen 支持的虚拟机类型
- xen虚拟机的资源分配
- xen虚拟机的启动过程
- xen虚拟机的迁移实验
- 启动Xen虚拟机的操作
- vs2013多个项目中设置单独启动
- 多个相互复制的ubuntu虚拟机的设置问题
- Xen虚拟机
- 安装Xen、创建Xen虚拟机、使用Xen虚拟机过程中经常出现的错误总结
- 安装Xen、创建Xen虚拟机、使用Xen虚拟机过程中经常出现的错误总结
- 中国最大的25个网站采用技术选型方案
- XEN虚拟机的安装和配置
- Win7开机动画图片下载大全 & 修改攻略
- 解决RHEL下中文显示乱码的问题
- 考完了,寒假开始了
- XML DTD与Schema约束
- [python] 批量地新建文件夹
- 采用Xen虚拟机设置多个单独的WEB网站
- 企业网站建设
- [python] 删除文件或文件夹
- Java高新技术1---增强for循环 ---装箱与拆箱享元设计模式--自己写枚举--可变长度的参数
- Xen虚拟机简介
- Oracle回收站(recyclebin)
- HTML 5游戏市场究竟有多大?
- 10号中断子功能详解
- 第14条:在公有类中使用访问方法而非公有域