15468 发表于 2017-1-13 11:15:54

Apache基于IP、基于port和基于域名的三种虚拟主机的配置方法

Apache基于IP、基于port和基于域名的三种虚拟主机的配置方法




基于相同
IP
不同
Port
的虚拟主机



1

vi /etc/httpd/conf/httpd.conf
  (建议使用
nano

gedit
等编辑器,下同)



2
)将
Listen
字段改为



Listen 80



Listen 8080



(以上设置表示使用
80
以及
8080
端口,好像
8888
端口有冲突)



3
)更改虚拟主机部分为:



<VirtualHost 192.168.0.1:80>



   
DocumentRoot /var/www/html/website1



</VirtualHost>



<VirtualHost 192.168.0.1:8080>



   
DocumentRoot /var/www/html/website2



</VirtualHost>



4
)保存以上设置



5
)创建目录以及页面文件:



#mkdir –p /var/www/html/website1



#mkdir –p /var/www/html/website2



#cd /var/www/html/website1



#cat >index.html <<EOF



>website1



>EOF



#cd /var/www/html/website2



#cat >index.html <<EOF



>website2



>EOF



(注:在
/etc/httpd/conf/httpd.conf
中有
DirectoryIndex index.html index.html.var
,表示只读
index.html
,而不读
index.htm
,切记)



6

service httpd restart



完成以上设置后,可以通过以下方式访问:



1
)打开浏览器



2
)输入
http://192.168.0.1:80
以及
http://192.168.0.1:8080
















2
.基于相同
Port
不同
IP
的虚拟主机



1
)不同
IP
地址的配置:



#cd /etc/sysconfig/network-scripts



#cp ifcfg-eth0 ifcfg-eth0:1



#vi ifcfg-eth0:1




eth0:1
更改为:



DEVICE=eth0:1



ONBOOT=YES



BOOTPROTO=static



IPADDR=192.168.0.2



NETMASK=255.255.255.0



2

service network restart



3

vi /etc/httpd/conf/httpd.conf



4
)更改虚拟主机部分为:



<VirtualHost 192.168.0.1:80>



   
DocumentRoot /var/www/html/website1



</VirtualHost>



<VirtualHost 192.168.0.2:80>



   
DocumentRoot /var/www/html/website2



</VirtualHost>



5
)创建目录以及页面文件:



#mkdir –p /var/www/html/website1



#mkdir –p /var/www/html/website2



#cd /var/www/html/website1



#cat >index.html <<EOF



>website1



>EOF



#cd /var/www/html/website2



#cat >index.html <<EOF



>website2



>EOF



完成以上设置后,可以通过以下方式访问:



1
)打开浏览器



2
)输入
http://192.168.0.1:80
以及
http://192.168.0.2:80
















3
.基于域名的虚拟主机的访问



1

vi /etc/http/conf/httpd.conf



2
)更改虚拟主机部分为:



NameVirtualHost 192.168.0.1



<VirtualHost www1.example.com>



   
DocumentRoot /var/www/html/website1



   
ServerName www1.example.com



</VirtualHost>



<VirtualHost www2.example.com>



   
DocumentRoot /var/www/html/website2



   
ServerName www2.example.com



</VirtualHost>



(注:以上设置中
NameVirtualHost
不可以省略)



3
)创建目录以及页面文件:



#mkdir –p /var/www/html/website1



#mkdir –p /var/www/html/website2



#cd /var/www/html/website1



#cat >index.html <<EOF



>website1



>EOF



#cd /var/www/html/website2



#cat >index.html <<EOF



>website2



>EOF



4
)完成以上设置后,可以通过以下方式访问:



1
)打开浏览器



2
)输入
http://www1.example.com
以及
http://www2.example.com







注意:如果虚拟主机的目录不在“
/var/www
”下面,则需要关闭
SELINUX
,方法如下:




/etc/selinux/config
中的



SELINUX=enforcing



改成



SELINUX=permissive



然后重启。



如果想立即生效,则执行:



# setenforce 0



命令就可以了。








这里是在一台配置了3个IP的虚拟机下的配置
Listen 80
Listen 81
#same IP ,diff port
<VirtualHost 192.168.174.130:80>
DocumentRoot /usr/local/apache/htdocs/test1
#       ServerNametest1.localhost
</VirtualHost>
<VirtualHost 192.168.174.130:81>
DocumentRoot /usr/local/apache/htdocs/test2
#      ServerName      test2.localhost
</VirtualHost>

#same port ,diff IP
<VirtualHost 192.168.174.131:80>
DocumentRoot    /usr/local/apache/htdocs/test1
</VirtualHost>
<VirtualHost 192.168.174.132:80>
DocumentRoot    /usr/local/apache/htdocs/test2
</VirtualHost>

#more domain
NameVirtualHost 192.168.174.130:80
<VirtualHost www.test1.com>
DocumentRoot /usr/local/apache/htdocs/test1
ServerName www.test1.com
</VirtualHost>
<VirtualHost www.test2.com>
DocumentRoot /usr/local/apache/htdocs/test2
ServerName www.test2.com
</VirtualHost>
还要到/et/hosts中添加
192.168.174.130 www.test1.com
192.168.174.130 www.test2.com
 




本文转载自:http://hi.baidu.com/ghasky/blog/item/08d1b2ac785235024b36d68b.html
页: [1]
查看完整版本: Apache基于IP、基于port和基于域名的三种虚拟主机的配置方法