|
Alias
其存在在/etc/httpd/conf/目录中httpd.conf文件中,
其定义的语法格式为Alias /URL "local_path"
大概意思就是用一个简单的路径来映射长路径:
如图中, /icons/映射的路径为 “/var/www/icons/”
例子:
[Shell] 纯文本查看 复制代码 [iyunv@Cyz ~]# mkdir -pv /bbs/forum //创建路径
mkdir: created directory `/bbs'
mkdir: created directory `/bbs/forum'
[iyunv@Cyz ~]# cd /bbs/forum/
[iyunv@Cyz forum]# vim index.html //为其创建主页并在其中添加信息,大致为
//Lujing Bieming –观察而已
[iyunv@Cyz forum]# vim /etc/httpd/conf/httpd.conf //编辑里面,
//加上路径别名Alias /luntan "/bbs/forum"
//需要注意,/luntan后是否有斜线需与
// “//bbs/forum”对应,存在应同时存在
[iyunv@Cyz forum]# service httpd restart //重启网络服务
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[iyunv@Cyz forum]#
然后打开浏览器输入 172.16.111.1/luntan查看内容,
2、虚拟主机
首先,我们来为虚拟主机分下类:
虚拟主机:
基于IP的虚拟主机;
基于端口的虚拟主机;
基于域名的虚拟主机;
虚拟主机的定义格式如下:
- <VirtualHost HOST>
-
- </VirtualHost>
①前提:得先取消中心主机,注释中心主机的DocumentRoot即可。因为虚拟主机和中心主机不能同时使用。/etc/httpd/conf/httpd.comf
②创建虚拟主机:
有2中方法:在/etc/httpd/conf/httpd.comf中定义VirtualHost,或者在conf.d目录下创建,这里选取在conf.d中创建
[Shell] 纯文本查看 复制代码 [iyunv@Cyz conf.d]# vim virtual.conf
// 首先我们来创建基于不同IP的虚拟主机
<VirtualHost 172.16.111.1:80> //:80是指web的默认端口80
ServerName hell.magedu.com
DocumentRoot "/www/magedu.com"
</VirtualHost>
<VirtualHost 172.16.111.2:80>
ServerName [url]www.a.org[/url]
DocumentRoot "/www/a.org"
</VirtualHost>
:wq //保存退出
然后由于我们的文件目录还没创建,这里我们去创建这些目录文件
[Shell] 纯文本查看 复制代码 [iyunv@Cyz ~]# mkdir -pv /www/{magedu.com,a.org}
mkdir: created directory `/www'
mkdir: created directory `/www/magedu.com'
mkdir: created directory `/www/a.org'
//创建目录完成,下一步创建index.html文件
[iyunv@Cyz ~]# cd /www/magedu.com/
[iyunv@Cyz magedu.com]# vim index.html
//index.html文件中可随意添加,起到注释作用即可。
[iyunv@Cyz magedu.com]# cd /www/a.org/
[iyunv@Cyz a.org]# vim index.html //同上
[iyunv@Cyz a.org]# service httpd restart //重启网络服务
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
//这个时候。我们还没有为172.16.111.2添加别名,所以:
[iyunv@Cyz a.org]# ip addr add 172.16.111.2/16 dev eth0 //添加别名
[iyunv@Cyz a.org]# ip addr show //查看别名
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:15:c3:cf brd ff:ff:ff:ff:ff:ff
inet 172.16.111.1/16 brd 172.16.255.255 scope global eth0
inet 172.16.111.2/16 scope global secondary eth0 //这里说明已经添加完成
这里,我们已经做好了基于IP的虚拟主机,这个时候我们打开ie浏览器来查看
然后,我们来创建基于不同端口的虚拟主机:
我们这里继续编辑
[Shell] 纯文本查看 复制代码 [iyunv@Cyz conf.d]# vim virtual.conf
//在其中加入
<VirtualHost 172.16.111.1:8080>
ServerName [url]www.b.net[/url]
DocumentRoot "/www/b.net"
</VirtualHost>
:wq
//继续去创建一个b.net目录并创建index.html(方法同上)
[iyunv@Cyz www]# mkdir b.net
[iyunv@Cyz www]# cd b.net
[iyunv@Cyz b.net]# vim index.html //内容起到标示作用即可
//然后到conf/httpd.conf中启用监听端口8080
[iyunv@Cyz b.net]# vim /etc/httpd/conf/httpd.conf
//找到Listen 80在其下添加
Listen 8080
[iyunv@Cyz b.net]# service httpd restart //重启网络服务
然后我们继续访问
然后,我们来创建基于不同域名的虚拟主机:
首先我们要启用NameVirtualHost并制定在哪个地址上,监听哪个端口
[Shell] 纯文本查看 复制代码 //这里同样可以在httpd.conf中定义,也可以在我们在conf.d目录中创建的文件中定义,这里我们依然在conf.d目录中的文件中定义
[iyunv@Cyz ~]# vim /etc/httpd/conf.d/virtual.conf
//在头部添加
NameVirtualHost 172.16.111.2:80 //这里表明在111.2:80上实现不同域名的虚拟主机
//然后我们继续在下面添加
<VirtualHost 172.16.111.2:80>
ServerName [url]www.d.gov[/url]
DocumentRoot "/www/d.gov"
</VirtualHost>
:wq
//继续创建目录与文件
[iyunv@Cyz www]# mkdir d.gov
[iyunv@Cyz www]# cd d.gov
[iyunv@Cyz d.gov]# vim index.html //内容起到标示作用即可
[iyunv@Cyz b.net]# service httpd restart //重启网络服务
//这里需要注意的是:如果访问,需要能够解析两个主机名,最简单的方式就是编辑物理机的hosts文件,或者创建一个DNS服务器把那2个主机名解析到自己的主机下。这里我们用简单的方法编辑本机的hosts文件:
//在hosts文件中加入
172.16.111.2 [url]www.a.org[/url]
172.16.111.2 [url]www.d.gov[/url]
hosts文件路径:
然后我们进行测试访问
到这里,我们已经完成了对虚拟主机的创建。
③为不同的站点添加各自的日志
如果我们没有在conf.d下的virtual.conf中定义日志的存放位子。那么它就全部存在放了/var/log/httpd中,如果想更好的管理,将日志予以分类,我们便可以在virtual.conf中定义:
[Shell] 纯文本查看 复制代码 NameVirtualHost 172.16.111.2:80
<VirtualHost 172.16.111.1:80>
ServerName hell.magedu.com
DocumentRoot "/www/magedu.com"
CustomLog /var/log/httpd/magedu.com/access_log combined //添加内容
//combined表示格式,前边表示访问时的存放路径
</VirtualHost>
<VirtualHost 172.16.111.2:80>
ServerName [url]www.a.org[/url]
DocumentRoot "/www/a.org"
CustomLog /var/log/httpd/a.org/access_log combined //添加内容
</VirtualHost>
<VirtualHost 172.16.111.2:80>
ServerName [url]www.d.gov[/url]
DocumentRoot "/www/d.gov"
CustomLog /var/log/httpd/d.gov/access_log combined //添加内容
</VirtualHost>
<VirtualHost 172.16.111.1:8080>
ServerName [url]www.b.net[/url]
DocumentRoot "/www/b.net"
CustomLog /var/log/httpd/b.net/access_log combined //添加内容
</VirtualHost>
:wq
//然后到var/log目录中创建这些目录
[iyunv@Cyz ~]# cd /var/log/httpd/
[iyunv@httpd ]# mkdir a.org b.net d.gov magedu.com
[iyunv@Cyz httpd]# service httpd restart //重启网络服务
然后在浏览器分别对这些网站进行访问
[iyunv@Cyz httpd]# tree //查看日志是否生成
.
|-- a.org
| `-- access_log
|-- access_log
|-- access_log.1
|-- b.net
| `-- access_log
|-- d.gov
| `-- access_log
|-- error_log
|-- error_log.1
`-- magedu.com
`-- access_log
4 directories, 8 files
//可以tail命令查看日志内容
3、用户认证
如上实验。如果我们希望用户访问a.org的时候,要通过用户登录才能够访问
[Shell] 纯文本查看 复制代码 [iyunv@Cyz httpd]# vim /etc/httpd/conf.d/virtual.conf
//编辑文件,在2:80中添加
<VirtualHost 172.16.111.2:80>
ServerName [url]www.a.org[/url]
DocumentRoot "/www/a.org"
CustomLog /var/log/httpd/a.org/access_log combined
<Directory "/www/a.org"> ///
Options none
AllowOverride authconfig
AuthType basic
AuthName "Restrict area."
AuthUserFile "/etc/httpd/.htpasswd"
Require valid-user //所以用户
</Directory>
</VirtualHost>
:wq
//然后创建用户
[iyunv@Cyz ~]# htpasswd -c -m /etc/httpd/.htpasswd tom
// -c表示指定路径,第一次创建的时候需要指出第二次不必,加上会覆盖原先的
New password: //不显示的输入
Re-type new password:
Adding password for user tom //创建成功
[iyunv@Cyz ~]# httpd –t //检查语法错误
Syntax OK
[iyunv@Cyz ~]# service httpd restart //重启网络服务
然后来进行测试访问
输入用户名即可访问
|
|