httpd配置用户访问认证

需求:单用户访问网站的某个目录,需要使用帐号密码来登录才能访问。

一、编辑虚拟主机的配置文件,添加目录级访问限制

<Directory "/var/www/html/demo">
  Options -Indexes FollowSymLinks
  AllowOverride AuthConfig
  Order allow,deny
  Allow from All

  AuthName "Login Notice" —— 认证时显示的提示
  AuthType Basic —— 认证类型
  AuthUserFile /etc/httpd/conf.d/htpasswd —— 用户配置文件
  require valid-user —— 限制为所有合法用户
</Directory>

二、用户认证配置文件
1.创建apache的验证用户

#htpasswd -c /etc/httpd/conf.d/htpasswd testuser 
黑色部分表示认证文件的路径,可以自己选定其他路径

回车后提示输入该用户的密码,输入两遍完成设置,第一次创建用户要用到 -c 参数,以后添加用户,就不用 -c 参数。

2.如果想修改某个用户的密码:

#htpasswd -m /etc/httpd/conf.d/htpasswd testuser

三、测试效果
1.认证页面效果如下

58-1

2.认证失败如下提示:

58-2

httpd配置gzip压缩

以下设置在 /etc/httpd/conf/httpd.conf 文件末尾加入即可。(不同方式安装的httpd可能主配置文件位置不同,请自行查找)

 

一、mod_deflate模块:文件压缩

官方文档:http://httpd.apache.org/docs/2.2/mod/mod_deflate.html

1.检查是否加载模块

LoadModule deflate_module modules/mod_deflate.so

2.设置压缩规则

<IfModule mod_deflate.c>

#开启压缩
SetOutputFilter DEFLATE

#以下文件不压缩,因为用处不大
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary

#压缩所有文本类型的文件
AddOutputFilterByType DEFLATE text/*

#压缩脚本文件
AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript application/x-httpd-php

</IfModule>

 

二、mod_headers模块:过期时间设置

官方文档:http://httpd.apache.org/docs/2.2/mod/mod_headers.html

对指定的文件配置缓存的生存时间,去除mod_headers.so模块前面的注释,以下的86400单位秒,即24小时过期。

#文件缓存时间配置
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|js|css)$">
Header set Cache-Control "max-age=86400"
</FilesMatch>

 

以上设置完成之后重启httpd服务,重新加载配置。

可以通过http://tool.chinaz.com/Gzips/ 工具检测是否开启gzip压缩。

可以通过谷歌浏览器开发者工具的Network选项来查看设置过期时间是否成功(查看头部请求)。