|
1.虚拟机工具:VMware
2.操作系统:CentOS6.5
3.网络环境:内网
4.任务:基于apache虚拟机三种方式的配置
5.说明:对apache虚拟主机的配置掌握程度,直接影响后续对nginx虚拟机的配置效率。
6.解决问题的关键:网上及书籍上对apache虚拟主机配置的方式基本上差不多,实际在做实验过程中发现,通过IP及端口号的实验都可以通过,就是基于主机名访问通不过,研究了一段时间,也查了好多资料,还是没有找出原因,最后通过对老男孩讲nginx配置虚拟主机的时候,当时恍然大悟;原来是我们学习过程都是基于本地xp系统之上,安装虚拟机,通过虚拟机安装linux做实验,所以要在windows平台:
“C:\WINDOWS\system32\drivers\etc”路径下找到hosts文件,在文件中增加主机名与相应IP地址对应。
127.0.0.1localhost
192.168.152.126 www.school.com
192.168.152.129 www.jw.com
192.168.152.130 ntc.jxatei.com
192.168.152.130 server1.com
#当然上面的配置一定要与apache虚拟主机httpd.conf配置是一致的;如果是公网呢?其实道理很简单,我们自己配置IP地址,域名服务商提供,绑定就可以了。要不就自己做(DNS)域名解析。
7.操作步骤:
一、基于IP
1. 假设服务器有个IP地址为192.168.152.130,使用ifconfig在同一个网络接口eth0上绑定3个IP:
[root@localhost root]# ifconfig eth0:1 192.168.152.126
[root@localhost root]# ifconfig eth0:2 192.168.152.128
[root@localhost root]# ifconfig eth0:3 192.168.152.129
2. 修改hosts文件,添加三个主机名与之一一对应:
192.168.152.126 www.jxatei.net
192.168.152.128 jwc.jxatei.net
192.168.152.129 ntc.jxatei.net
3. 建立虚拟主机存放网页的根目录,如在/www目录下建立school、jw、ntc文件夹,其中分别存放school.html、jw.html、ntc.html
/www/school/school.html
/www/jw/jw.html
/www/ntc/ntc.html
4. 在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:
ServerName www.school.com #主机名
ServerAlias school.com #别名
DocumentRoot /www/school/
ErrorLog "logs/school_error_log"
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
ServerName www.jw.com
ServerAlias jw.com
DocumentRoot /www/jw/
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
ServerName www.ntc.com
ServerAlias ntc.com
DocumentRoot /www/ntc/
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
5. 大功告成,测试下每个虚拟主机,分别访问www.school.com、www.jw.com、www.ntc.com
二、基于主机名
1. 设置主机名映射同一个IP,修改hosts:
192.168.152.126 www.jxatei.net
192.168.152.128 jwc.jxatei.net
192.168.152.129 ntc.jxatei.net
2. 跟上面一样,建立虚拟主机存放网页的根目录
/www/school/school.html
/www/jw/jw.html
/www/ntc/ntc.html
3. 在httpd.conf中将附加配置文件httpd-vhosts.conf包含进来,接着在httpd-vhosts.conf中写入如下配置:
为了使用基于域名的虚拟主机,必须指定服务器IP地址(和可能的端口)来使主机接受请求。可以用NameVirtualHost指令来进行配置。如果服务器上所有的IP地址都会用到,你可以用*作为NameVirtualHost的参数。在NameVirtualHost指令中指明IP地址并不会使服务器自动侦听那个IP地址。 这里设定的IP地址必须对应服务器上的一个网络接口。
下一步就是为你建立的每个虚拟主机设定配置块,的参数与NameVirtualHost指令的参数是一样的。每个定义块中,至少都会有一个ServerName指令来指定伺服哪个主机和一个DocumentRoot指令来说明这个主机的内容存在于文件系统的什么地方。
如果在现有的web服务器上增加虚拟主机,必须也为现存的主机建造一个定义块。其中ServerName和DocumentRoot所包含的内容应该与全局的保持一致,且要放在配置文件的最前面,扮演默认主机的角色。
NameVirtualHost *:80
ServerName *
DocumentRoot /www/
ServerName www.school.com
DocumentRoot /www/school/ |
|
|
|
|
|
|