apache基本配置管理之:apache基于IP,port和域名三种虚拟主机配置方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache基本配置管理之:apache基于IP,port和域名三种虚拟主机配置方法相关的知识,希望对你有一定的参考价值。
apache配置管理
一、基于端口,即基于不同的端口,相同的IP的虚拟主机
基于相同ip不同port的虚拟主机
1)vi /etc/http/conf/httpd.conf
2)将Listen字段改为
Listen 80
Listen 8888
(以上设置表示使用80以及8888端口)
3)更改虚拟主机部分为:
<VirtualHost 192.168.0.1:80>
DocumentRoot /var/www/html/website1
ServerName www.website1.com
</VirtualHost>
<VirtualHost 192.168.0.1:8888>;
DocumentRoot /var/www/html/website2
ServerName www.website2.com
</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
补充关于EOF:
在shell中,文件分界符(通常写成EOF,你也可以写成FOE或者其他任何字符串)紧跟在<<符号后, 意思是分界符后的内容将被当做标准输入传给<<前面的命令
使用格式基本是这样的:
命令 << EOF
内容段
EOF
将“内容段”整个作为命令的输入。
你的代码里就是用cat命令读入整段字符串并赋值给list变量。
其实,不一定要用EOF,只要是“内容段”中没有出现的字符串,都可以用来替代EOF,只是一个起始和结束的标志罢了。
有个特殊用法不得不说:
: << COMMENTBLOCK
shell脚本
COMMENTBLOCK
这个用来注释整段脚本代码。 : 是shell中的空语句。
搜索一下 Here document 你会明白更多。
(注:在/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:8888
二、基于IP,即基于不同IP,相同端口的虚拟主机
基于相同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
ifconfig eth0:1 192.168.1.11 临时生效,需要写入到/etc/sysconfig/network-scripts/ifcfg-eth0:1配置文件
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) 设置域名映射同一个IP,修改/etc/hosts:
192.168.0.1 www1.example.com
192.168.0.1 www2.example.com
2)创建目录以及页面文件:
#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
3)在httpd-vhosts.conf配置虚拟主机部分为:
NameVirtualHost 192.168.0.1 [NameVirtualHost *.80]
<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不可以省略)
4)完成以上设置后,可以通过以下方式访问:
1)打开浏览器
2)输入http://www1.example.com 以及 http://www2.example.com
发现不能正常访问,配置的虚 含进来,在http.conf中搜索vhost这行,然后开启该行,然后重启动服务即可。
为了使用基于域名的虚拟主机,必须指定服务器IP地址(和可能的端口)来使主机接受请求。可以用NameVirtualHost指令来进行配置。 如果服务器上所有的IP地址都会用到, 你可以用*作为NameVirtualHost的参数。在NameVirtualHost指令中指明IP地址并不会使服务器自动侦听那个IP地址。 这里设定的IP地址必须对应服务器上的一个网络接口。
下一步就是为你建立的每个虚拟主机设定<VirtualHost>配置块,<VirtualHost>的参数与NameVirtualHost指令的参数是一样的。每个<VirtualHost>定义块中,至少都会有一个ServerName指令来指定伺服哪个主机和一个DocumentRoot指令来说明这个主机的内容存在于文件系统的什么地方。
如果在现有的web服务器上增加虚拟主机,必须也为现存的主机建造一个<VirtualHost>定义块。其中ServerName和DocumentRoot所包含的内容应该与全局的保持一致,且要放在配置文件的最前面,扮演默认主机的角色。
NameVirtualHost *:80
<VirtualHost *:80>
ServerName *
DocumentRoot /www/
</VirtualHost>
<VirtualHost *:80>
ServerName www.test1.com
DocumentRoot /www/test1/
<Directory "/www/test1">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.test2.com
DocumentRoot /www/test2/
<Directory "/www/test2">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.test3.com
DocumentRoot /www/test3/
<Directory "/www/test3">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
参考地址:
http://www.cnblogs.com/hi-bazinga/archive/2012/04/23/2466605.html
http://blog.csdn.net/joliny/article/details/2514293
本文出自 “12214694” 博客,请务必保留此出处http://12224694.blog.51cto.com/12214694/1895589
以上是关于apache基本配置管理之:apache基于IP,port和域名三种虚拟主机配置方法的主要内容,如果未能解决你的问题,请参考以下文章
CentOS 7运维管理笔记----Apache 基于 IP 的虚拟主机配置