目录
本实验为前次博客的扩展,有兴趣可以参考HTTP服务安装与配置
访问控制:限制客户端可以访问的资源,或限制其不能访问某些资源
实现方式
<Directory ""> 内部指令只对Directory容器生效,完成控制
<Files ""> 针对某个文件进行控制,而非路径名称,必须只写文件名
<Location ""> 此容器需单独定义,不要定义在Directory之中。
实验环境
基于来源地址的访问控制实现
禁止来自192.168.10.111的主机访问根,修改主配置文件如下
禁止来自10.10.86.68的主机访问sub子目录,修改配置文件如下
重启服务
由于SeverName未指定所以出现异常信息,修改ServerName属性并重启
192.168.101.win10客户端访问测试
192.168.10.111 centos6 客户机测试(为了便于观察,使用lynx工具进行测试,需要先安装该工具)
注:使用q退出
#/etc/httpd/conf/httpd.conf<Directory "/var/www/html"> Options Indexes FollowSymLinks#Options 选项 #Indexes 若不存在索引页面则录下内容以列表样式列出 #FollowSymLinks 目录下启用显示符号(软)链接文件 AllowOverride None Order allow,deny #指定规则,先检查allow后检查deny Allow from all #允许所有主机 Deny from 192.168.10.111 #拒绝192.168.10.111,覆盖前面设定的允许</Directory><Directory "/var/www/html/sub"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all Deny from 192.168.10.1</Directory>
创建虚拟用户的目录,并添加测试主页
使用htpasswd命令添加虚拟用户,指定用户存放文件为/etc/httpd/conf.d/.htpasswd
注:-m 表示md5加密,-c自动创建账户,-s使用sha1加密,-D 删除指定账户
修改主配置文件如下:
重启服务
win客户端访问
#/etc/httpd/conf/httpd.conf<Directory "/var/www/html/httpd1"> #网站所在路径 Options Indexes #使用的选项 AllowOverride None #是否允许权限覆盖 AuthType Basic #认证类型 虚拟用户认证 AuthName "welcome" #认证的名称,提示信息 AuthUserFile "/etc/httpd/conf.d/.htpasswd" #虚拟用户存放文件路径 Require valid-user #允许访问的用户,valid-user有效用户 或指定用户名</Directory>
实验环境
分类
基于IP的虚拟主机的实现
#/etc/httpd/conf/httpd.conf<VirtualHost 192.168.10.109:80> #虚拟主机的ip及端口 ServerAdmin mail@www.lg1.com #管理员邮箱 DocumentRoot /www/docs/lg1 #网站根目录 ServerName www.lg1.com #服务器名 ErrorLog logs/lg1-error_log #错误日志存放位置 CustomLog logs/lg1-access_log #访问记录日志存放位置</VirtualHost><VirtualHost 192.168.10.110:80> ServerAdmin mail@www.lg2.com DocumentRoot /www/docs/lg2 ServerName www.lg2.com ErrorLog logs/lg2-error_log CustomLog logs/lg2-access_log common</VirtualHost>
#/etc/httpd/conf/httpd.confListen 80Listen 8080<VirtualHost 192.168.10.110:80> ServerAdmin mail@www.lg80.com DocumentRoot /www/docs/lg80 ServerName www.lg80.com ErrorLog logs/lg80-error_log CustomLog logs/lg80-access_log common</VirtualHost><VirtualHost 192.168.10.110:8080> ServerAdmin mail@www.lg8080.com DocumentRoot /www/docs/lg8080 ServerName www.lg8080.com ErrorLog logs/lg8080-error_log CustomLog logs/lg8080-access_log common</VirtualHost>
修改主配置文件
创建指定的站点目录并添加主页
重启服务
修改客户端C:\Windows\System32\drivers\etc\hosts文件
测试
##/etc/httpd/conf/httpd.confNameVirtualHost 192.168.10.110:80 #指定域名虚拟主机的地址及端口,若无则ServerName不生效<VirtualHost 192.168.10.110:80> ServerAdmin mail@web1.lg.com DocumentRoot /www/docs/lgweb1 #站点根目录 ServerName web1.lg.com #站点对应的域名 ErrorLog logs/lgweb1-error_log CustomLog logs/lgweb1-access_log common</VirtualHost><VirtualHost 192.168.10.110:80> ServerAdmin mail@web2.lg.com DocumentRoot /www/docs/lgweb2 ServerName web2.lg.com ErrorLog logs/lgweb2-error_log CustomLog logs/lgweb2-access_log common</VirtualHost>
相关模块mod_deflate
启用压缩后能够节约服务器带宽,但需要消耗额外的CPU(部分浏览器旧版本不支持)
#/etc/httpd/conf.d/gzip.conf<ifmodule mod_deflate.c> DeflateCompressionLevel 6 #压缩率, 6是建议值AddOutputFilterByType DEFLATE text/plain #定义压缩的资源类型AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/php AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/atom_xml AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/x-httpd-php AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/gif image/png image/jpe image/swf image/jpeg image/bmp </ifmodule>