20180529

5月29日任务
11.18 Apache用户认证
11.19/11.20 域名跳转
11.21 Apache访问日志
扩展
apache虚拟主机开启php的短标签 http://ask.apelearn.com/question/5370

1. Apache用户认证

针对目录认证

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
把123.com的虚拟主机改成如下:

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    ServerAlias www.example.com
    <Directory /data/wwwroot/www.123.com> //指定认证目录. 注意检查
        AllowOverride AuthConfig //开启认证
        AuthName "123.com user auth" //自定义认证名,作用不大
        AuthType Basic //认证的类型,一般为Basic
        AuthUserFile /data/.htpasswd  //指定密码文件位置
        require valid-user //指定需要认证的用户为全部可用用户
    </Directory>
</VirtualHost>

生成密码文件
/usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd aming
/usr/local/apache2.4/bin/htpasswd -m /data/.htpasswd user2

-c:创建一个加密文件
-m:默认采用MD5算法对密码进行加密
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码

重新加载配置
/usr/local/apache2/bin/apachectl –t
/usr/local/apache2/bin/apachectl graceful

绑定hosts,浏览器测试

curl -x127.0.0.1:80 www.123.com //状态码为401
curl -x127.0.0.1:80 www.123.com -uaming:aming
curl -x127.0.0.1:80 -uaming:passwd www.123.com //状态码为200

针对文件认证

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    <FilesMatch admin.php>
        AllowOverride AuthConfig
        AuthName "123.com user auth"
        AuthType Basic
        AuthUserFile /data/.htpasswd
        require valid-user
    </FilesMatch>
</VirtualHost>

2. 域名跳转

需求: 不带www跳转到www

<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^www.123.com$
        RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L] #$1表示小括号中的字符
</IfModule>

查看是否加载了rewrite模块
/usr/local/apache2/bin/apachectl -M|grep -i rewrite
vim /usr/local/apache2.4/conf/httpd.conf

curl -x127.0.0.1:80 -I 123.com 状态码为301

3. Apache访问日志

编辑配置文件
vim /usr/local/apache2.4/conf/httpd.conf

搜索LogFormat

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
把虚拟主机配置文件的日志中CustomLog的common改成combind

重新加载配置文件
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

curl -x127.0.0.1:80 -I 123.com
tail /usr/local/apache2.4/logs/123.com-access_log

未经允许不得转载:外贸SOHO笔记 » 20180529

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下作者~

支付宝扫一扫打赏

微信扫一扫打赏