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

linux版本:Centos6.4

httpd版本:

[root@centos64Study init.d]# pwd
/etc/init.d
[root@centos64Study 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 )状态

[root@centos64Study ~]# getenforce

Enforcing

[root@centos64Study ~]# setenforce 0

[root@centos64Study ~]# getenforce

Permissive

永久修改方法:

[root@centos64Study ~]# vim /etc/sysconfig/selinux

SELINUX=permissive

3,关闭防火墙

service iptables stop

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

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

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

[root@centos64Study conf]# ls
httpd.conf httpd.conf.bak magic

2,如果需要启用虚拟主机配置,在文件httpd.conf中,先把中心主机的配置注释

#DocumentRoot "/var/www/html"

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

Include conf.d/*.conf

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

[root@centos64Study httpd]# ls
conf conf.d logs modules run
[root@centos64Study httpd]# pwd
/etc/httpd

[root@centos64Study httpd]# cd conf.d
[root@centos64Study conf.d]# pwd
/etc/httpd/conf.d
[root@centos64Study conf.d]# ls
README VirtualHost.conf welcome.conf

 

VirtualHost.conf 配置文件内容:

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


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

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

ip addr add 192.168.1.2/24 dev eth0

在对应的目录建立文件:

[root@centos64Study www]# tree
.
├── 7mxt.com
│   └── index.html
└── 7mxt.net
  └── index.html

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

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

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

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

2,在httpd.conf监听8080端口

Listen 80
Listen 8080

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

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

[root@centos64Study 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
DocumentRoot "/www/7mxt.com"
</VirtualHost>

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

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

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

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

[root@centos64Study 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
192.168.1.8

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

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

----------------------------------------------------------------------------------------------------------------------------------------------------

更详细的配置信息:

NameVirtualHost 192.168.1.8:80

<VirtualHost 192.168.1.8:80>
ServerName
DocumentRoot "/www/7mxt.com"
CustomLog /var/log/httpd/7mxt.com/access_log combined
<Directory "/www/7mxt.com">
AllowOverride AuthConfig
AuthType Basic
AuthName "Restricted Site..."
AuthUserFile "/etc/httpd/conf/htpasswd"
AuthGroupFile "/etc/httpd/conf/htgroup"
#Require user tom
Require group myusers
#Require valid-user
</Directory>
</VirtualHost>

<VirtualHost 192.168.1.8:80>
ServerName
DocumentRoot "/www/7mxt.org"
CustomLog /var/log/httpd/7mxt.org/access_log combined
</VirtualHost>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwxgsp.html