码迷,mamicode.com
首页 > Web开发 > 详细

Httpd访问控制、虚拟主机、网页压缩优化

时间:2019-10-29 19:42:03      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:删除   基于域名的虚拟主机   优化   def   处理   css   none   let   passwd命令   

本实验为前次博客的扩展,有兴趣可以参考HTTP服务安装与配置

HTTPD访问控制、虚拟主机、网页压缩优化

HTTPD访问控制

  • 访问控制:限制客户端可以访问的资源,或限制其不能访问某些资源

  • 分类
    • 基于来源地址(常用)
    • 基于账号
      • basic基于虚拟账号认证(明文传输需要进行加密)
      • digest信息摘要认证
  • 实现方式

    • <Directory ""> 内部指令只对Directory容器生效,完成控制

    • <Files ""> 针对某个文件进行控制,而非路径名称,必须只写文件名

    • <FilesMatch ""> 基于正则表达式模式进行控制(调用正则表达式引擎,效率低)
      • 例如:<FilesMatch ".(gif|jp?g|png)$">
    • <Location ""> 此容器需单独定义,不要定义在Directory之中。

HTTPD访问控制的实现

  • 实验环境

    • 服务端:centos6.10 192.168.10.110
    • 客户端:centos6.10 192.168.10.110
    • 客户端:windows10 192.168.10.1
  • 基于来源地址的访问控制实现

    1. 禁止来自192.168.10.111的主机访问根,修改主配置文件如下
      技术图片
      技术图片

    2. 禁止来自10.10.86.68的主机访问sub子目录,修改配置文件如下
      技术图片

    3. 重启服务
      技术图片

    4. 由于SeverName未指定所以出现异常信息,修改ServerName属性并重启
      技术图片
      技术图片

    5. 192.168.101.win10客户端访问测试
      技术图片
      技术图片

    6. 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>
  • 基于虚拟账户的访问控制实现
  1. 创建虚拟用户的目录,并添加测试主页
    技术图片

  2. 使用htpasswd命令添加虚拟用户,指定用户存放文件为/etc/httpd/conf.d/.htpasswd技术图片

    注:-m 表示md5加密,-c自动创建账户,-s使用sha1加密,-D 删除指定账户

  3. 修改主配置文件如下:
    技术图片

  4. 重启服务
    技术图片

  5. 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>

虚拟主机

  • 实验环境

    • 服务端1:centos6.10 192.168.10.110 192.168.10.109
    • 客户端:centos6.10 192.168.10.110
    • 客户端:windows10 192.168.10.1
  • 分类

    • 基于IP的虚拟主机
    • 基于port的虚拟主机
    • 基于域名的主机
      注:三种虚拟主机可混合使用
  • 基于IP的虚拟主机的实现

    1. 为虚拟服务器主机添加网卡,配置IP
      技术图片
      技术图片
      技术图片
      技术图片
      技术图片
      技术图片
      技术图片
    2. 修改主配置文件如下
      技术图片
      技术图片
    3. 创建指定的目录并添加主页
      技术图片
    4. 重启服务
      技术图片
    5. 测试
      技术图片
      技术图片
#/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>
  • 基于端口的虚拟主机
  1. 修改主配置文件如下(要将上一个实验配置的内容注释或删除)
    技术图片
    技术图片
    技术图片
  2. 创建站点根目录,并添加测试主页
    技术图片
  3. 重启服务
    技术图片
  4. 测试
    技术图片
    技术图片
#/etc/httpd/conf/httpd.conf
Listen 80
Listen 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>
  • 基于域名的虚拟主机
  1. 修改主配置文件

    技术图片

    技术图片

  2. 创建指定的站点目录并添加主页

    技术图片

    技术图片

  3. 重启服务

    技术图片

  4. 修改客户端C:\Windows\System32\drivers\etc\hosts文件

    技术图片

  5. 测试

    技术图片

    技术图片

##/etc/httpd/conf/httpd.conf
NameVirtualHost 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(部分浏览器旧版本不支持)

  • 实验过程
    1. 在主配置文件中启用相关模块(httpd2.2 默认启动),并启用压缩功能
      技术图片
      技术图片
    2. 设置压缩属性(该文件需手动创建,该文件需在主配置文件中使用include指定)
      技术图片
      技术图片
      技术图片
    3. 更改网站主页内容进行测试
      技术图片
    4. 重启服务
      技术图片
    5. 测试(火狐浏览器中Ctrl+F5强制刷新,不使用浏览器缓存)
      技术图片
#/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> 

扩展

  • http请求方式:
    • GET:获取服务器中的某个资源
    • HEAD:只从服务器获取资源的响应首部
    • POST:向服务器发送要处理的数据(通常表单提交)
    • PUT:将请求的主体部分存储在服务器上
    • DELETE:请求删除服务器上的指定资源
    • TRACE:追踪请求到达服务器中间经过的代理服务器
    • OPTIONS:请求服务器返回对指定资源支持使用的请求方法
  • http响应状态码
    • 1XX:消息
    • 2XX:成功
    • 3XX:重定向
    • 4XX:请求错误(客户端)
    • 5XX:服务器错误

Httpd访问控制、虚拟主机、网页压缩优化

标签:删除   基于域名的虚拟主机   优化   def   处理   css   none   let   passwd命令   

原文地址:https://www.cnblogs.com/lastyear/p/11760879.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!