apache用户认证
[root@localhost htdocs]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/apeng.com"
ServerName www.apeng.com
ServerAlias www.aling.com www.axin.com
ErrorLog "logs/apeng.com-error_log"
CustomLog "logs/apeng.com-access_log" common
<Directory /data/wwwroot/apeng.com>
AllowOverride AuthConfig
AuthName "www.apeng.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</Directory>
</VirtualHost>
# /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd apeng
# /usr/local/apache2.4/bin/htpasswd -m /data/.htpasswd aming
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
# curl -x127.0.0.1:80 www.apeng.com //提示用户认证
# curl -x127.0.0.1:80 -uapeng aling.com //访问成功
在浏览器中访问(在hosts文件中添加相应的ip与域名对应关系)
输入用户名和密码即可访问
域名跳转
搜索引擎,如百度,谷歌,有道
如:你在百度里搜索linux,就会出现很多关于linux关键字的相关信息的链接,就是因为百度的蜘蛛,它的一些小程序来到了你服务器上抓走了这个页面,放到百度服务器的数据库里,从百度数据库里搜索到了linux相关网站,百度服务器把这个网站的链接传送给了用户。
一个网站有两个域名可以访问,百度认为你的第二个域名是一个冒牌货,所以百度给第一个域名的权重值高一点,排名就会靠前一点。
这时可将第一个域名作一个跳转,在百度排名里,第二个域名的权重值就会高一点,搜索时就会靠前一点,就会容易找到。
查看apache是否加载了rewrite模块/usr/local/apache2.4/bin/apachectl -M|grep rewrite
vim /usr/local/apache2.4/conf/httpd.conf // #LoadModule rewrite_module modules/mod_rewrite.so去掉前面的"#"
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
# /usr/local/apache2.4/bin/apachectl -t;/usr/local/apache2.4/bin/apachectl graceful
# curl -x127.0.0.1:80 www.rewrite1.com -I
这样可以让访问www.rewrite1.com与www.rewrite2.com 时跳转到www.rewrite.com,状态码为301(域名永久跳转)
访问日志
访问日志记录用户的每一个请求
# 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
日志文件路径中哪里呢?
ErrorLog "logs/rewrite.com-error_log"
CustomLog "logs/rewrite.com-access_log" common
把虚拟主机配置文件改成如下:
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/rewrite.com"
ServerName www.rewrite.com
ServerAlias www.rewrite1.com www.rewrite2.com
ErrorLog "logs/rewrite.com-error_log"
CustomLog "logs/rewrite.com-access_log" combined
<IfModule mod_rewrite.c>
RewriteEngine on
REwriteCond %{HTTP_HOST} !^www.rewrite.com$
RewriteRule ^/(.*)$ http://www.rewrite.com/$1 [R=301,L]
</IfModule>
</VirtualHost>
# /usr/local/apache2.4/bin/apachectl -t;/usr/local/apache2.4/bin/apachectl graceful
# curl -x127.0.0.1:80 www.rewrite2.com
# tail /usr/local/apache2.4/logs/rewrite.com-access_log
点击http://www.aming1.com/test.php
\"%{Referer}i\"====="http://blog.51cto.com/13480443/2072927"
\"%{User-Agent}i\"===="Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
访问日志不记录指定类型的文件
网站大多元素为静态文件,如图片,css,js等,这些元素可以不用记录
把虚拟主机配置文件改成如下
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/rewrite.com"
ServerName www.rewrite.com
ServerAlias www.rewrite1.com www.rewrite2.com
ErrorLog "logs/rewrite.com-error_log"
SetEnvIf Request_URI ".*\.gif$" img
SetEnvIf Request_URI ".*\.jpg$" img
SetEnvIf Request_URI ".*\.png$" img
SetEnvIf Request_URI ".*\.bmp$" img
SetEnvIf Request_URI ".*\.swf$" img
SetEnvIf Request_URI ".*\.js$" img
SetEnvIf Request_URI ".*\.css$" img
#<IfModule mod_rewrite.c>
# RewriteEngine on
# REwriteCond %{HTTP_HOST} !^www.rewrite.com$
# RewriteRule ^/(.*)$ http://www.rewrite.com/$1 [R=301,L]
#</IfModule>
CustomLog "logs/rewrite.com-access_log" combined env=!img
</VirtualHost>
# /usr/local/apache2.4/bin/apachectl -t;/usr/local/apache2.4/bin/apachectl graceful
# curl -x127.0.0.1:80 www.rewrite2.com/123.js
# tail /usr/local/apache2.4/logs/rewrite.com-access_log(发现没有记录访问123.js的日志)
访问日志的切割
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/rewrite.com-access_%Y%m%d.log 86400" combined env=!img
/usr/local/apache2.4/bin/rotatelogs //httpd自带的一个切割工具
-l //以当前系统的时间为基准,如果不指定-l(以utc为基准去切割时间)
rewrite.com-access_%Y%m%d.log是一个变量(日志名)
以天为单位切割(一天为86400秒)
combined 日志格式
env=!img排除以img标识的文件