服务器虚拟化托管方案.docx
- 文档编号:8001623
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:50
- 大小:1.22MB
服务器虚拟化托管方案.docx
《服务器虚拟化托管方案.docx》由会员分享,可在线阅读,更多相关《服务器虚拟化托管方案.docx(50页珍藏版)》请在冰点文库上搜索。
服务器虚拟化托管方案
服务器虚拟化托管方案——Windows篇(第一版)
很早以前就已经使用这个方法开始做托管服务器了,服务器运行也很稳定,所以今天将这个方法写成文档。
此方案通过一个服务器托管实例说明整个服务器的配置过程。
一般的机房服务器托管只给一个IP地址,要使用多个虚拟机对外提供web或其他服务就需要自己想办法将多个虚拟机中的应用通过这一个IP地址发布出去,整个服务器的配置分以下几个步骤:
1、 物理服务器安装操作系统并安装防火墙软件
2、 安装虚拟机软件
3、 在物理主机上发布各虚拟机中的web服务
4、 在物理主机上发布虚拟机中的其他服务
5、 配置虚拟机上网
此方案中,重点解决的是多个虚拟机中的站点怎样使用共享一个公网IP地址对外提供web访问服务,下面按照以上的步骤详细介绍配置方法。
1物理服务器安装操作系统并安装防火墙软件
系统配置环境
下表中列出了本方案的各种配置信息:
操作系统
相关软件
网络配置
备注
Windows2003(建议企业版)此为宿主机,安装到物理服务器上
VmwareServer2.0(用于虚拟化的实现)ISAServer2006标准版
VMNET1:
192.168.10.5/24
WAN:
10.10.5.254(此ip为实验环境,实际应用时要修改此IP)
后文对物理主机上的操作系统称为宿主机
宿主机的VMNET1:
内网网卡(与虚拟机相连的虚拟网卡vmnet1)
宿主机eth1:
外网网卡(此网卡绑定了公网IP地址)
虚拟机系统,对外提供各种服务
虚拟机网卡的连接方式选Host-only
CentOS/Linux(版本根据需要可自选)
安装相关应用程序Apache、FTP、Mysql
Etho0:
192.168.10.20/24
网关:
192.168.10.5
Windows操作系统
IIS、FTP、MSSql、Mail
本地连接:
192.168.10.10/24
网关:
192.168.10.5
其他虚拟机系统
虚拟机和宿主机的拓扑图如下:
安装配置ISAServer2006(宿主机)
有关ISAServer2006的相关介绍不再介绍,网上有很多介绍,在这里直接介绍软件的安装和基本配置。
在安装ISAServer2006之前,需要对服务器进行相关配置,要求服务器最少有两块网卡,但是一般服务器虽然有多块网卡,却只有一个网卡是接了网线,所以需要我们想办法解决这个问题。
可以有三个方法解决这个问题。
第一种是使用一个水晶头做一个环回的线,就是将网线上的发送线直接连到自己的接受线上就成了一个环回路,不要着急使用这个方法,因为下面介绍的两个方法比这个还要方便。
第二种方法,通过“添加硬件”的方法添加一个微软的虚拟环回网卡,如下图所示。
按照以上步骤添加了一个虚拟的网卡后,就可以为此网卡设置一个IP地址了,注意是个内网的IP,这里就设置成192.168.0.1吧。
第三种方法更简单,不用添加虚拟网卡了。
调换一下软件的安装顺序,先安装VMwareServer,因为安装完虚拟机软件后,会自动为系统添加2个虚拟网卡,选择VMNET8那块网卡并设置IP地址为192.168.0.1吧,因为VMNET1在后面我们要用它来做虚拟机网关。
本例中使用了第二种方法,为系统添加了一块虚拟网卡,同时将虚拟网卡重命名为LAN,配置有公网IP的网卡命名为WAN,以便以后辨认。
下面开始安装ISAServer2006,有两种方法:
第一种是手动按照步骤安装,第二种是通过配置文件自动安装。
第一种方法适合在现场安装,第二种适合远程安装。
第一种安装方法:
将ISAServer2006标准版光盘放入光驱,自动运行后出现安装界面,如下图所示。
按照提示进行安装,在选择“安装类型”时,要选择“自定义”,在自定义安装中去掉“高级日志”组件的安装,避免ISAServer产生大量日志占用磁盘空间,如下图所示。
在安装向导的“内部网络”中为ISAServer添加内网的地址段,也可以选择指定的网卡作为内网的网段地址,在此处将你所指定的所有内网IP地址全部加入,图示
在接下来的安装步骤中,根据自己的情况进行相应的选择就可以了,直到安装完成。
安装完ISAServer2006后,默认的策略是禁止所有进出的数据,下面要对ISAServer进行简单的配置,发布物理服务器的远程桌面端口,使外网可以通过远程桌面对服务器进行远程的管理。
打开ISAServer2006的管理器,转到“防火墙规则”右键单击选择“新建”——“非web服务器协议发布规则”,如下图所示。
在弹出的对话框中输入规则名,如“RDP”,然后继续。
在“选择服务器”对话框中输入内网的IP地址,本例中使用的是192.168.0.1,继续。
在“选择协议”对话框中,因为发布的是3389端口,所以选择下图所示的“RDP服务器”。
在“网络监听器IP地址”对话框中选择“外部”来监听连接请求,如下图所示。
继续下一步,直到完成,然后单击“应用”使刚创建的防火墙策略生效。
经过以上配置后,就可以通过远程桌面连接到服务器进行远程管理了。
第二种安装方法:
利用配置文件实现ISAServer2006的无人值守安装,适合通过远程安装ISAServer。
下面简单介绍一下此方法。
在ISAServer2006安装光盘的FPC目录中找到msisaund.ini这个文件,这个文件就是在安装ISAServer2006时自动加载的安装应答配置文件。
我们只要编写这个配置文件即可,以下为编写好的自动应答文件内容:
[SetupPropertyAssignment]
PIDKEY=12345678901234567890ASDFG ;序列号
INTERNALNETRANGES=310.0.0.0-10.255.255.255,172.16.0.0-172.31.255.255,192.168.0.0-192.168.255.255 ;内网地址段
ADDLOCAL=MSFirewall_Management,MSFirewall_Services ;安装的组件
REMOVE=MSDE :
要删除的组件
IMPORT_CONFIG_FILE=c:
\3389.xml ;此文件时一个防火墙规则,可以将备份的或者创建的防火墙规则在装完后,自动导入并应用。
保存好应答文件于C盘根下,然后在运行中输入(ISAServer安装盘是D)D:
\FPC\setup.exe/v"/qbFULLPATHANSWERFILE=\"c:
\msisaund.ini\""命令就会自动开始安装了。
2安装虚拟机软件
软件的安装步骤比较简单,所以在此略过。
3 在物理主机上发布各虚拟机中的web服务
在这里我们以发布192.168.10.10虚拟机中的和以及1912.168.10.20虚拟机中的和这4个站点为例来配置ISAServer。
1、 发布192.168.10.10中的站点
在防火墙策略中新建发布,选择“网站发布规则”规则名为“web-10”,在发布类型中选择“发布单个网站或负载平衡器”,如下图所示
在“服务器连接安全”选项卡中选择“使用不安全的连接发布的WEB服务器或服务器场”。
在“内部发布详细信息”对话框中,内部站点名称填写“web-10”,同时选中“使用计算机名称或IP地址连接到发布服务器”并填写虚拟机的IP地址192.168.10.10如下图所示。
在下图中,路径写“/*”,同时选中“转发原始主机头而不是前一页的内部站点名称字段中指定的实际主机头”选项。
在下图的“公共名称细节”中,接受请求选择“此域名(在以下输入)”,同时要在下面的公共名称中填如域名,如。
在下图中由于防火墙中并不存在web侦听器所以,需要新建一个新的,新的web侦听器名称“web-80”。
新建的web侦听器,客户端连接安全配置选择“不需要与客户端建立SSL安全连接”,如下图所示。
在“web侦听器IP地址”对话框中选择“外部”侦听,同时选中下边的复选框,这样访问网站时可以节省带宽。
在“身份验证设置”中选择“没有身份验证”。
完成web侦听器的创建,回到“选择web侦听器”对话框继续下一步,在“身份验证委派”对话框中选择“无委派,客户端无法直接进行身份验证”。
在下图中默认即可,允许所有用户。
创建好网站发布策略后,查看属性。
选择“公共名称”选项卡后,在下面再加入域名,完成两个网站的发布。
2、 发布192.168.10.20中的站点
按照“web-10”的规则再发布一个名为“web-20”的web发布规则,方法参考第一步。
在下图中只要直接选择在第一步中创建的web侦听器即可。
同样需要修改新建好的web-20的发布规则,公共名称中加入要发布的站点域名,在添加域名时可以使用通配符*(星号)来做域名的匹配。
在使用通配符域名时,需要将“链接转换”选项卡中的“对此规则应用链接转换”复选框去掉,否则会报错。
到这里,两个虚拟机中的站点都已经发布完成,当用户访问指定的域名时,ISAServer会根据创建的web发布规则进行域名匹配,然后转发请求到相应的虚拟机中。
需要注意的是,两条web发布规则的上下顺序在一定条件下是有要求的,ISAServer会从上到下进行规则匹配,如果遇到匹配的规则,将不再匹配后面的web发布规则,所以如果两条规则中存在相同的域名,则只响应第一条规则而忽略后面的。
实践:
一般情况下,最后一条web发布规则在“公共名称”中应该选择“所有请求”,将所有不匹配的域名请求都转发到此规则中。
4 在物理主机上发布各虚拟机中的其他服务
根据以前写的Linux版的实例,我们在这里发布相同的服务端口。
1、设置IISFTP连接端口为10000。
被动模式的端口范围(10001-10005),使用以下vbs脚本命令进行修改
cscript.exeadsutil.vbsset/MSFTPSVC/PassivePortRange"10001-10005"(在Windows虚拟机中执行)
2、发布内网虚拟机192.168.10.10的10000-10005端口
创建名为“FTP-10000”的“非web服务器协议发布规则”规则。
由于发布的虚拟机192.168.10.10上的FTP,所以在“选择服务器”对话框中填写此IP地址,如图
在“选择协议”对话框中,由于这里并没有提供10000-10005这个端口范围的协议,所以需要我们自己创建一个,单击“新建”命名为FTP10000。
在下图的“端口范围”中填写10000-10005的范围,方向是“入站”,如下图所示。
注意,确定后,弹出的“辅助连接”中选择“否”,不要用辅助连接。
创建好自定义协议后,应用并继续下一步,以后的步骤按照发布“RDP”的方法选择即可。
完成后的截图如下
创建完后,将虚拟机192.168.10.10中的FTP端口改成10000,然后进行测试。
3、发布内网虚拟机192.168.10.10的远程桌面端口
创建名为“RDP-3310”的“非web服务器协议发布规则”规则。
由于发布的虚拟机192.168.10.10上的3389端口,所以在“选择服务器”对话框中填写此IP地址,步骤参考“RDP”规则的创建方法。
但是在“选择协议”对话框中,需要另做配置,在此对话框中,单击“端口”在弹出的对话框中,改变一下对外发布的端口号,因为之前我们发布“RDP”规则时已经占用的公网IP的3389端口,所以在此需要将端口改成3310(根据个人喜好自己可以使用其他端口),如图所示
应用以上规则后,在远程连接服务器公网IP的3310端口,防火墙会将连接请求转发到内网192.168.10.10的3389端口上,实现连接虚拟机的远程桌面服务。
4、发布内网虚拟机192.168.10.10的MSsql端口
发布虚拟机中的MSSql服务器,其实就是发布1433端口,按照“RDP”发布的方法进行就可以了,只是在选择协议时,在下拉列表中选择“MicrosoftSQLServer”协议就可以了,如图所示
5、发布内网虚拟机192.168.10.20的20000-20005端口
参考发布2的发布方法,需要注意的是,选择协议中并没有20000-20005端口的协议,需要自己定义一个协议。
6、发布内网虚拟机192.168.6.200的SSH端口
方法同上
7、发布内网虚拟机192.168.6.200的Mysql端口
方法同上
以上各种服务发布完成后的截图如下:
解决虚拟机中网站日志中客户端真实IP问题(虚拟机)
通过ISAServer发布的网站同样会出现虚拟机中网站的日志文件中记录的都是宿主机的内网IP,影响网站日志的访问统计。
解决此问题其实很简单,打开防火墙的网站发布规则修改属性,选择“到”选项卡,可以看到下面有两个选项,默认选择的是“使请求显示为来自ISA服务器计算机”,所以网站日志记录的都是宿主机的IP地址,只要选择“使请求显示为来自初始客户端”即可解决此问题,就这么简单。
5 配置虚拟机上网
创建访问规则,使虚拟机系统可以访问网络以便更新操作系统补丁。
选择防火墙策略,选择“新建”——“访问规则”规则名称“tointernet”。
规则操作选择“允许”,在“协议”对话框中选择“所选的协议”,然后选择需要的协议。
选择内网的IP地址,“内部”表示物理服务器中的内网地址和主机,“本地主机”表示物理主机本身。
然后选择访问的目标地址,“外部”表示外网。
创建规则后的截图
这样虚拟机中的系统就可以通过ISAServer访问互联网。
实践:
出于安全考虑,也可以在规则选择目标时,指定访问的域名、IP地址或者某个URL地址。
总结
到这里算是将全文都写完了,这种方案托管应用多年了,一直很稳定,而且利用ISAServer这个企业级的防火墙来保护系统真的是很安全也很稳定,一般的DDOS攻击,只要不是流量型的攻击都是可以很好的保护服务器正常运行的。
ISAServer的操作其实都比较简单、直观的,本文档中只是简单举了几个比较典型的实例,可以根据个人的需要参照本文档中的步骤进行创建。
宿主机的系统不用安装杀毒软件了,不然会拖慢系统速度,我的服务器一直没装,也没出什么问题,只要严格限制宿主机访问网络一般不会出什么问题。
可以在网上查一些系统优化方面的资料优化一下系统,然后对系统做一个GHOST备份,最好装一个一键GHOST,这样可以远程对系统进行回覆操作。
注意:
在恢复系统之前,对防火墙策略做一下备份。
最后,此方案中没有提到服务器硬件的配置,这个可以根据不同的需求配置硬件。
我个人建议增加内存和提高磁盘IO是关键。
因为运行的虚拟机多了,磁盘IO就会成为瓶颈。
服务器虚拟化托管方案——Linux篇(第二版)
之前,我写过一个基于Windows平台运行VMwareServer虚拟机的服务器托管方案。
一直在朋友的服务器上运行了4年多。
后来慢慢接触了Linux系统,经过一段时间的学习,发现Linux系统的性能及稳定性比Windows要强很多。
所以,我打算将原来的服务器虚拟化方案转到Linux系统平台下。
经过近段时间的研究和测试,最后成功的将朋友的服务器迁移到了Linux平台,使用Linux系统和一些开源软件使服务器托管利用虚拟化技术和免费开源软件、系统再次降低成本,同时又提高了系统的性能。
此方案中实现的功能及特点:
1、 共享一个公网IP地址,发布多个虚拟机中的各种服务。
2、 多个虚拟机中的web站点共享80端口,实现通过域名访问虚拟机中的站点。
3、 宿主机上全部使用免费开源的操作系统及软件,节省软件费用。
4、 利用Linux下强大的iptables来保护服务器,相比Windows下的防火墙性能更优秀。
5、 Nginx超强的高并发处理能力、低系统资源开销,使服务器能够处理更多的并发web访问请求。
6、 利用Nginx的反向代理缓存功能,为Windows虚拟机站点加速。
(新加入的一个优化配置)
CentOS中配置支持NTFS文件系统格式(宿主机)
添加此节内容,是为一些需要将Windows下的数据导入到Linux平台的用户方便。
CentOS系统默认情况下并不支持挂载ntfs分区,需要我们单独安装ntfs的驱动才能对ntfs分区进行读写操作,用uname–r命令查看系统内核版本信息,并下载相应的NTFS驱动。
本例中版本是kernel-module-ntfs-2.6.18-128.el5。
安装命令:
rpm-ivhkernel-module-ntfs-2.6.18-128.el5-2.1.27-0.rr.10.11.i686.rpm
运行/sbin/modprobentfs加载内核模块,检查是否加载成功。
[root@localhost~]# dmesg|grepNTFS
NTFSdriver2.1.27[Flags:
R/WMODULE].
如果出现上面的信息,说明已经可以对ntfs分区进行读写操作了。
也可以运行cat/proc/filesystems命令进行查看。
接下来就是将要迁移的磁盘分区挂载到CentOS系统下,然后迁移数据。
挂载NTFS分区(/dev/hda6为原Windows系统下的C盘分区)命令如下:
mount-tntfs/dev/hda6/mnt/c
系统配置环境
下表中列出了本方案的各种配置信息:
操作系统
相关软件
网络配置
备注
CentOS/Linux(版本自选)此为宿主机,安装到物理服务器上
VmwareServer2.0(用于虚拟化的实现)
Eth0:
192.168.10.5/24
Eth1:
10.10.5.254(此ip为实验环境,实际应用时要修改此IP)
后文对物理主机上的操作系统称为宿主机
宿主机的eth0:
内网网卡(与虚拟机相连的虚拟网卡vmnet1)
宿主机eth1 :
外网网卡(此网卡绑定了公网IP地址)
虚拟机系统,对外提供各种服务
虚拟机网卡的连接方式选Host-only
CentOS/Linux(版本根据需要可自选)
安装相关应用程序Apache、FTP、Mysql
Etho0:
192.168.10.20/24
网关:
192.168.10.5
Windows操作系统
IIS、FTP、MSSql、Mail
本地连接:
192.168.10.10/24
网关:
192.168.10.5
其他虚拟机系统
虚拟机和宿主机的拓扑图如下:
安装配置Nginx0.8.35(宿主机)
1、 安装Nginx所需的pcre库:
到http:
//www.pcre.org/去下载最新版
tarzxvfpcre-8.01.tar.gz
cdpcre-8.01/
./configure
make&&makeinstall
cd../
2、 安装Nginx清理缓存模块
使用此模块可以实现缓存的清理任务
wget
tarzxvfngx_cache_purge-1.0.tar.gz
只要将模块解压出来即可,在编译Nginx时同时编译此模块。
3、 安装Nginx
到http:
//www.nginx.org/en/download.html下载最新版
/usr/sbin/groupaddwww
/usr/sbin/useradd-gwwwwww
tarzxvfnginx-0.8.35.tar.gz
cdnginx-0.8.35/
./configure--user=www--group=www--add-module=../ngx_cache_purge-1.0--with-http_stub_status_module--with-http_ssl_module--with-http_sub_module
make&&makeinstall
cd../
4、 修改Nginx全局配置文件
worker_processes 2;
access_logoff;
error_logoff;
events{
useepoll;
worker_connections 65535;
}
#charset gb2312;
server_names_hash_bucket_size128;
client_header_buffer_size32k;
large_client_header_buffers432k;
client_max_body_size8m;
sendfileon;
tcp_nopush on;
keepalive_timeout60;
tcp_nodelayon;
fastcgi相关配置可以删除不使用,仅做记录暂不使用.
fastcgi_connect_timeout300;
fastcgi_send_timeout300;
fastcgi_read_timeout300;
fastcgi_buffer_size64k;
fastcgi_buffers464k;
fastcgi_busy_buffers_size128k;
fastcgi_temp_file_write_size128k;
gzipon;
gzip_min_length 1k;
gzip_buffers 416k;
gzip_http_version1.0;
gzip_comp_level2;
gzip_types text/plainapplication/x-javascripttext/cssapplication/xml;
gzip_varyon;
#limit_zone crawler $binary_remote_addr 10m;
5、 配置开机自动启动Nginx
修改/etc/rc.local文件,在最后加入如下命令
ulimit-SHn65535
/usr/local/nginx/sbin/nginx
优化Linux内核参数(宿主机)
修改/etc/sysctl.conf文件,在最后加入以下内容:
net.ipv4.tcp_max_syn_backlog=65536
dev_max_backlog= 32768
net.core.somaxconn=32768
net.core.wmem_default=8388608
net.core.rmem_default=8388608
net.core.rmem_max=16
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 服务器 虚拟 托管 方案