您的位置:首页 > 运维架构 > Apache

【Linux】Apache虚拟主机和虚拟目录配置!

2016-01-17 17:31 851 查看
虚拟主机:
虚拟主机分为三种模式,基于域名、基于IP地址、基于端口号常用的为基于域名和IP地址。

虚拟目录:
通常用来管理员存放一些文件,或者网页提供文件下载。

虚拟目录配置:

修改配置文件,在配置文件最下方加入如下内容:
[root@CentOS-3 ~]# vim /usr/local/apache/conf/httpd.conf
Alias /test "/yum" //定义虚拟目录“/test”,物理路径为“/yum”!
<Directory "/yum"> //定义目录访问权限
Options Indexes MultiViews FollowSymLinks //固定格式
AllowOverride None //固定格式
Order allow,deny //匹配顺序为先允许,后拒绝
Allow from all //设置允许所有人访问
Require all granted //对这个目录给予授权
</Directory>




重启apache服务
[root@CentOS-3 ~]# service httpd restart

用真机访问验证,访问的时候在地址末尾加上自己定义的虚拟目录名称







配置授权访问虚拟目录:

授权访问就是将虚拟目录开启身份验证

将上面的配置做如下修改:

Alias /test "/yum"
<Directory "/yum">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
AuthName "test" //定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示
authtype basic //设置认证的类型,basic为基本的认证
authuserfile /usr/local/apache/user //设置用于保存用户账号、密码的认证文件路径
require valid-user //要求只有认证文件中的合法用户才能访问。valid-user表示所有合法用户
</Directory>




使用htpasswd创建认证文件

[root@CentOS-3 ~]# htpasswd -c /usr/local/apache/user tom
//第一次创建需要结合“-c”选项创建user文件,用户名为tom
New password: //登录密码
Re-type new password:
Adding password for user tom
[root@CentOS-3 ~]#
使用cat命令查看一下认证文件,发现自动就已经对密码进行了加密

[root@CentOS-3 ~]# cat /usr/local/apache/user
tom:$apr1$ie7HCcn9$pOtEPa3Hip00xB8IyFnWp0
[root@CentOS-3 ~]#

重启apache服务

[root@CentOS-3 ~]# service httpd restart

访问验证









虚拟主机配置:

基于端口

在主配置文件的最下方插入如下内容关联一个新的配置文件:
[root@CentOS-3 ~]# vim /usr/local/apache/conf/httpd.conf



//子配置文件的路径为Apache安装目录下的“conf.d”目录下的任何以“.conf”结尾的文件

[root@CentOS-3 ~]# mkdir /web1 //创建第一个网站目录
[root@CentOS-3 ~]# mkdir /web2 //创建第二个网站目录
[root@CentOS-3 ~]# echo "<h1>This is test111</h1>" > /web1/index.html //写测试页
[root@CentOS-3 ~]# echo "<h1>This is test222</h1>" > /web2/index.html
[root@CentOS-3 ~]# mkdir /usr/local/apache/conf.d //创建子配置文件目录

配置子配置文件
[root@CentOS-3 ~]# vim /usr/local/apache/conf.d/vhost.conf
Listen 81 //要监听的端口号
listen 82
<Directory "/web1"> //目录的访问权限设置
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
<VirtualHost 192.168.10.250:81> //指定虚拟主机的IP地址和端口号
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /web1 //指定web文件目录
ServerName 192.168.10.250 //域名
ErrorLog logs/web1.com-error_log //错误日志
CustomLog logs/web1.com-access_log common //访问日志
</VirtualHost>
<Directory "/web2">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
<VirtualHost 192.168.10.250:82>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /web2
ServerName 192.168.10.250
ErrorLog logs/web2.com-error_log
CustomLog logs/web2.com-access_log common
</VirtualHost>

重启服务

[root@CentOS-3 ~]# service httpd restart

访问测试








基于域名
与上面的配置基本相同只需要将ServerName的IP地址换成域名既可:

[root@CentOS-3 ~]# vim /usr/local/apache/conf.d/vhost.conf
<Directory "/web1">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
<VirtualHost 192.168.10.250> //这个地方不要在给端口号了
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /web1
ServerName www.web1.com //输入域名
ErrorLog logs/web1.com-error_log
CustomLog logs/web1.com-access_log common
</VirtualHost>
<Directory "/web2">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
<VirtualHost 192.168.10.250>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /web2
ServerName www.web2.com
ErrorLog logs/web2.com-error_log
CustomLog logs/web2.com-access_log common
</VirtualHost>
重启服务

[root@CentOS-3 ~]# service httpd restart

测试访问
由于没有搭建DNS服务器,所以修改hosts文件来实习域名解析:

C:\Windows\System32\drivers\etc //hosts文件位置



将扩展修改为“.txt”



加入如下内容



修改完成后,将文件名还原即可访问








基于IP地址

添加一块网卡地址为192.168.10.100

修改配置文件
[root@CentOS-3 ~]# vim /usr/local/apache/conf.d/vhost.conf

<Directory "/web1">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
<VirtualHost 192.168.10.250>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /web1
ServerName www.web1.com
ErrorLog logs/web1.com-error_log
CustomLog logs/web1.com-access_log common
</VirtualHost>
<Directory "/web2">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>

<VirtualHost 192.168.10.100> //只需要修改此处网卡IP地址即可
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /web2
ServerName www.web2.com
ErrorLog logs/web2.com-error_log
CustomLog logs/web2.com-access_log common
</VirtualHost>
重启服务

[root@CentOS-3 ~]# service httpd restart

访问验证






内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux apache http