您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 服务器虚拟化托管方案
服务器虚拟化托管方案——Linux篇(第一版)之前,我写过一个基于Windows平台运行VMwareServer虚拟机的服务器托管方案。一直在朋友的服务器上运行了4年多。后来慢慢接触了Linux系统,经过一段时间的学习,发现Linux系统的性能及稳定性比Windows要强很多,这使我萌生了将原来的服务器虚拟化方案转到Linux系统平台下的想法。经过近段时间的研究和测试,最后成功的将朋友的服务器迁移到了Linux平台,使用Linux系统和一些开源软件使服务器托管利用虚拟化技术和免费开源软件、系统再次降低成本,同时又提高了系统的性能。此方案中实现的功能及特点:1、共享一个公网IP地址,发布多个虚拟机中的各种服务。2、多个虚拟机中的web站点共享80端口,实现通过域名访问虚拟机中的站点。3、宿主机上全部使用免费开源的操作系统及软件,节省软件费用。4、利用Linux下强大的iptables来保护服务器,相比Windows下的防火墙性能更优秀。5、Nginx超强的高并发处理能力、低系统资源开销,使服务器能够处理更多的并发web访问请求。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|grepNTFSNTFSdriver2.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.6.5/24Eth1:10.10.5.254(此ip为实验环境,实际应用时要修改此IP)后文对物理主机上的操作系统称为宿主机宿主机的eth0:内网网卡(与虚拟机相连的虚拟网卡vmnet1)宿主机eth1:外网网卡(此网卡绑定了公网IP地址)虚拟机系统,对外提供各种服务虚拟机网卡的连接方式CentOS/Linux(版本根据需要可自选)安装相关应用程序Apache、FTP、MysqlEtho0:192.168.6.200/24网关:192.168.6.5Windows操作系统IIS、FTP、MSSql、Mail本地连接:192.168.6.100/24网关:192.168.6.5其他虚拟机系统虚拟机和宿主机的拓扑图如下:安装配置Nginx0.8.35(宿主机)1、安装Nginx所需的pcre库:到去下载最新版tarzxvfpcre-8.01.tar.gzcdpcre-8.01/./configuremake&&makeinstallcd../2、安装Nginx到下载最新版/usr/sbin/groupadd===/usr/local/nginx--with-http_stub_status_module--with-http_ssl_modulemake&&makeinstall、修改Nginx全局配置文件worker_processes2;access_log/dev/null;error_log/dev/null;events{useepoll;worker_connections65535;}#charsetgb2312;server_names_hash_bucket_size128;client_header_buffer_size32k;large_client_header_buffers432k;client_max_body_size8m;sendfileon;tcp_nopushon;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_length1k;gzip_buffers416k;gzip_http_version1.0;gzip_comp_level2;gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml;gzip_varyon;#limit_zonecrawler$binary_remote_addr10m;4、配置开机自动启动Nginx修改/etc/rc.local文件,在最后加入如下命令ulimit-SHn65535/usr/local/nginx/sbin/nginx优化Linux内核参数(宿主机)修改/etc/sysctl.conf文件,在最后加入以下内容:net.ipv4.tcp_max_syn_backlog=65536#是SYN队列的长度net.core.netdev_max_backlog=32768#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目net.core.somaxconn=32768#这个值不能调高系统的最大连接数,但是能调高系统同时发起连接的tcp连接数,默认128net.core.wmem_default=8388608net.core.rmem_default=8388608net.core.rmem_max=16777216net.core.wmem_max=16777216net.ipv4.tcp_timestamps=0net.ipv4.tcp_synack_retries=2net.ipv4.tcp_syn_retries=2net.ipv4.tcp_tw_recycle=1#net.ipv4.tcp_tw_len=1net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_mem=94500000915000000927000000net.ipv4.tcp_max_orphans=3276800#net.ipv4.tcp_fin_timeout=30#net.ipv4.tcp_keepalive_time=120net.ipv4.ip_local_port_range=102465535使配置立即生效:/sbin/sysctl–p设置Web站点的域名请求转发(宿主机)server{listen80;#server_name{set$vhost$host;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;($vhost~*()|(.+\.duxt\.net)){proxy_pass}if($vhost~*()|()){proxy_pass}}}以上测试环境配置中涉及到的域名上的站点域名,上的站点域名。如果在192.168.6.100这个虚拟机上还有其他域名的站点,可以按照以下格式将域名加入到表达式中,也可以用正则表达式进行匹配,根据需要修改此表达式即可。()|()|(其他域名)防火墙策略设置部分(宿主机)对宿主机的iptables进行基本的初始化配置,设置防火墙策略的默认配置。首先要开启防火墙的路由功能,使用以下命令实现:echo1/proc/sys/net/ipv4/ip_forward允许访问宿主机SSHiptables-tfilter-IINPUT-s0.0.0.0/0-ptcp--dport22-jACCEPT设置默认策略/sbin/iptables-PINPUTDROP/sbin/iptables-POUTPUTACCEPT/sbin/iptables-PFORWARDACCEPT/sbin/iptables-tnat-PPREROUTINGACCEPT/sbin/iptables-tnat-POUTPUTACCEPT/sbin/iptables-tnat-PPOSTROUTINGACCEPT允许内网虚拟机服务器访问外网iptables-tnat-APOSTROUTING-oeth1-s192.168.6.0/24-jSNAT--to10.10.5.254利用iptables来发布虚拟机中的各种服务(宿主机)设置IISFTP连接端口为10000。被动模式的端口范围(10001-10005),使用以下vbs脚本命令进行修改cscript.exeadsutil.vbsset/MSFTPSVC/PassivePortRange10001-10005(在Windows虚拟机中执行)发布内网虚拟机192.168.6.100的10000-10005端口iptables-tnat-APREROUTING-ieth1-ptcp--dport10000:10005-jDNAT--to192.168.6.100发布内网虚拟机192.168.6.100的远程桌面端口iptables-tnat-APREROUTING-ieth1-ptcp--dport3389-jDNAT--to192.168.6.100:3389
本文标题:服务器虚拟化托管方案
链接地址:https://www.777doc.com/doc-1594541 .html