linux apache虚拟主机配置(基于ip,端口,域名)

Posted ghostwu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux apache虚拟主机配置(基于ip,端口,域名)相关的知识,希望对你有一定的参考价值。

配置环境:

linux版本:Centos6.4

httpd版本:

[[email protected] init.d]# pwd
/etc/init.d
[[email protected] init.d]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built: Oct 19 2017 16:43:38

1,安装httpd服务

yum install httpd -y

2,关闭selinux和防火墙

临时设置selinux为permissive( disabled )状态

[[email protected] ~]# getenforce

Enforcing

[[email protected] ~]# setenforce 0

[[email protected] ~]# getenforce

Permissive

永久修改方法:

[[email protected] ~]# vim /etc/sysconfig/selinux

SELINUX=permissive

3,关闭防火墙

service iptables stop

 

第一种,基于多ip访问的配置:

1,先把httpd.conf备份一下,以防出错,可以恢复

httpd.conf的文件路径( /etc/httpd/conf )

[[email protected] conf]# ls
httpd.conf httpd.conf.bak magic

2,如果需要启用虚拟主机配置,先把中心主机的配置注释,

#DocumentRoot "/var/www/html"

3,在httpd.conf中,会默认包conf.d目录中的所有 以.conf结尾的配置文件

Include conf.d/*.conf

所以,把虚拟主机的配置文件独立出来放在conf.d目录下

[[email protected] httpd]# ls
conf conf.d logs modules run
[[email protected] httpd]# pwd
/etc/httpd

[[email protected] httpd]# cd conf.d
[[email protected] conf.d]# pwd
/etc/httpd/conf.d
[[email protected] conf.d]# ls
README VirtualHost.conf welcome.conf

 

VirtualHost.conf 配置文件内容:

<VirtualHost 192.168.1.8:80>
ServerName www.7mxt.com
DocumentRoot "/www/7mxt.com"
</VirtualHost>


<VirtualHost 192.168.1.2:80>
ServerName www.7mxt.net
DocumentRoot "/www/7mxt.net"
</VirtualHost>

我的主机ip是192.168.1.8,添加另一个ip:

 ip addr add 192.168.1.2/24 dev eth0

在对应的目录建立文件:

[[email protected] www]# tree
.
├── 7mxt.com
│   └── index.html
└── 7mxt.net
└── index.html

重启服务: service httpd restart,在浏览器中分别用这两个ip访问,就能看到对应的页面

 

第二种,基于多端口访问的配置:

1,在VirtualHost.conf中增加一项配置:

<VirtualHost 192.168.1.8:80>
ServerName www.7mxt.com
DocumentRoot "/www/7mxt.com"
</VirtualHost>
<VirtualHost 192.168.1.2:80>
ServerName www.7mxt.net
DocumentRoot "/www/7mxt.net"
</VirtualHost>
<VirtualHost 192.168.1.2:8080>
ServerName www.abc.net
DocumentRoot "/www/abc.net"
</VirtualHost>

2,在httpd.conf监听8080端口

Listen 80
Listen 8080

3,/www建立对应的目录和文件

重启服务: service httpd restart,在浏览器中用http://192.168.1.2:8080/  就能访问到abc.net目录下面的文件index.html内容

[[email protected] www]# tree
.
├── 7mxt.com
│   └── index.html
├── 7mxt.net
│   └── index.html
└── abc.net
  └── index.html

 

第三种:基于域名的主机配置

1,NameVirtualHost:指定192.168.1.8:80这个ip地址使用域名解释

NameVirtualHost 192.168.1.8:80

<VirtualHost 192.168.1.8:80>
ServerName www.7mxt.com
DocumentRoot "/www/7mxt.com"
</VirtualHost>

<VirtualHost 192.168.1.8:80>
ServerName www.7mxt.org
DocumentRoot "/www/7mxt.org"
</VirtualHost>

<VirtualHost 192.168.1.2:80>
ServerName www.7mxt.net
DocumentRoot "/www/7mxt.net"
</VirtualHost>

<VirtualHost 192.168.1.2:8080>
ServerName www.abc.net
DocumentRoot "/www/abc.net"
</VirtualHost>

2,在对应的目录下建立文件

[[email protected] www]# tree
.
├── 7mxt.com
│   └── index.html
├── 7mxt.net
│   └── index.html
├── 7mxt.org
│   └── index.html
└── abc.net
  └── index.html

3,在windows host文件中增加主机映射配置

【C:\Windows\System32\drivers\etc】

192.168.1.8 www.7mxt.com
192.168.1.8 www.7mxt.org

4,重启服务: service httpd restart,分别用域名www.7mxt.com, www.7mxt.org就能访问到对应的文件内容

使用ip: 192.168.1.8返回的是第一个虚拟主机的配置,即:www.7mxt.com对应目录下面的内容

 

以上是关于linux apache虚拟主机配置(基于ip,端口,域名)的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统下Apache2.4.6配置虚拟主机

基于CentOS6.6配置Apache虚拟主机(多IP多主机多端口)

一篇文在手,Apache虚拟主机全通透

Apache多端口多主机名配置

43.apache虚拟主机的使用

Apache 虚拟主机与日志分割