首页 » Linux » liunx基础 » 阅读文章
CentOS VPS配置多IP,多站点的方法
查看网络信息
infconfig
可以查看到各物理网卡,虚拟网卡等信息
单网卡增加IP
增加新IP需要知道的是新的IP地址和子网掩码,假如需要增加的ip是192.168.1.197,子网掩码是255.255.255.0
在目录/etc/sysconfig/network-scripts/ 下面是一些网卡的配置文件,新增加一个额外IP地址,需要在这个目录下新增加一个新网卡配置文件。额外IP的网卡配置文件的文件名是有要求的,必须是ifcfg-eth0:XXXX的形式,其中eth0代表物理网卡,eth0:XXXX 代表是附加在这个物理网卡上的虚拟网卡,XXXX可以是1到4位的字符串,字符串内容可以包含任意字母和数字。
cd /etc/sysconfig/network-scripts/ vi ifcfg-eth0:1 ##输入## DEVICE=eth0:1 BOOTPROTO=static IPADDR=100.200.300.400 NETMASK=255.255.255.0 ONBOOT=yes
然后重启网卡即可
service network restart
多站点配置
多站点配置需要使用apahce中的虚拟主机功能,虚拟主机指的是在单一机器上运行多个网站 ,一般原则是一个网站对应一个虚拟主机
Apache的虚拟主机主要分两种:基于ip的虚拟主机和基于域名的虚拟主机
Apache配置文件httpd.conf给末尾给出了一个示例的
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com #服服务器出错的发信地址(可选) DocumentRoot /www/docs/dummy-host.example.com #放置服务文档的目录 ServerName dummy-host.example.com #主机名 ErrorLog logs/dummy-host.example.com-error_log #错误日志 (可选) CustomLog logs/dummy-host.example.com-access_log common #访问日志 (可选) </VirtualHost>
注:apache配置文件修改后,要重启apahce生效 service httpd restart
假设
192.168.1.197 www.a.com
192.168.1.196 www.b.com
192.168.1.196 www.c.com为了方便测试我们也可以修改windows下的C:\WINDOWS\system32\drivers\etc\hosts文件,和centos下/etc/hosts文件实现
对于单纯的基于域名的虚拟主机
配置文件httpd.conf末尾增加
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /var/www/html/a.com ServerName www.a.com </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/html/b.com ServerName www.b.com </VirtualHost>
对于单纯的基于IP的虚拟主机
#Listen 80 #默认就监听的 <VirtualHost 192.168.1.197> DocumentRoot /var/www/html/a.com ServerName www.a.com </VirtualHost> <VirtualHost 192.168.1.196> DocumentRoot /var/www/html/b.com ServerName www.b.com </VirtualHost> #也可以直接IP访问 <VirtualHost 192.168.1.195> DocumentRoot /var/www/html ServerName 192.168.1.195 </VirtualHost>
对于混合使用的虚拟主机
NameVirtualHost 192.168.1.196:80 <VirtualHost www.c.com:80> DocumentRoot /var/www/html/c.com ServerName www.c.com </VirtualHost> <VirtualHost www.b.com:80> DocumentRoot /var/www/html/b.com ServerName www.b.com </VirtualHost> <VirtualHost www.a.com:80> DocumentRoot /var/www/html/b.com ServerName www.a.com </VirtualHost> <VirtualHost 192.168.1.195> DocumentRoot /var/www/html ServerName 192.168.1.195 </VirtualHost>
NameVirtualHost的使用
如果某个ip:port 上只设置了一个虚拟主机,那么NameVirtualHost ip:port 可以不写,因为从这个ip:port的访问不需要做任何选择;如上例中192.168.1.197只对应于www.a.com,所以不用指定NameVirtualHost
如果某个ip:port 上设置了多于一个虚拟主机,那么必须使用指令NameVirtualHost ip:port ,否则从该ip:port的访问只访问第一个该ip:port 的虚拟主机(因为它优先,apache启动时会提示的);如上例中192.168.1.196对应www.b.com 和www.c.com,指定NameVirtualHost为NameVirtualHost 192.168.1.196:80
如果使用了指令NameVirtualHost ip:port ,却没有为该ip:port定义任何虚拟主机,好像不会出现访问到错误的虚拟主机的问题(因为谁也不知道你想干什么,不过apache还是会提示你:[warn] NameVirtualHost ip:port has no VirtualHosts);
如果VirtualHost 指定的虚拟主机没有匹配一个NameVirtualHost 指令,那么该虚拟主机不会被用到(除非他是第一个虚拟主机),这相当于没有NameVirtualHost 指令,即:如果有多个虚拟主机,一定要有NameVirtualHost 指令
注意
1.NameVirtualHost 指定虚拟主机所使用的IP地址或域名,但是最好是IP地址。使用基于域名的虚拟主机时,NameVirtualHost是必要的指令。NameVirtualHost可以定义多个。
2.虚拟主机混用可以这样理解:一行NameVirtualHost指令定义的所有虚拟主机为一组;该组与一个基于IP的虚拟主机平级。即把一行NameVirtualHost定义的整个组看作是一个基于IP的虚拟主机。
3.虚拟主机指定的端口必须是Listen定义的。如果虚拟主机没有指定端口,则认为是80端口。
参考:http://hi.baidu.com/dtzw/blog/item/b56eae1e7d6b550d403417d4.html
声明: 本文由Ezencart原创,转载请保留链接:CentOS VPS配置多IP,多站点的方法
评论 共0条 (RSS 2.0) 发表评论