0509预习笔记和课堂笔记--LAMP(中)

任务

11.16/11.17 Apache默认虚拟主机
11.18 Apache用户认证
11.19/11.20 域名跳转
11.21 Apache访问日志
11.22 访问日志不记录静态文件
11.23 访问日志切割
11.24 静态元素过期时间

预习笔记

Apache默认虚拟主机

一台服务器可以访问多个网站,每个网站都是一个虚拟主机 概念:域名(主机名)、DNS、解析域名、hosts 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机

1.配置windows下的hosts文件
文件路径C:\Windows\System32\drivers\etc\hosts
在这里插入图片描述

2.添加域名
在这里插入图片描述
3.ping配置的域名是否生效
在这里插入图片描述
4.使用浏览器访问
在这里插入图片描述

** linux下配置虚拟主机**

1.编辑配置文件httpd.conf,去掉Virtual hosts下面一行的#号,使虚拟主机的配置文件生效
vim /usr/local/apache2.4/conf/httpd.conf
在这里插入图片描述

2.修改虚拟主机配置文件
在这里插入图片描述

<VirtualHost *:80>
DocumentRoot “/data/wwwroot/abc.com” \定义网站根目录
ServerName abc.com \定义域名,只能一个
ServerAlias www.abc.com www.123.com \定义域名别名,可以多个
ErrorLog “logs/abc.com-error_log” \定义错误日志
CustomLog “logs/abc.com-access_log” common \定义访问日志

<VirtualHost *:80>
DocumentRoot “/data/wwwroot/111.com” \定义网站根目录
ServerName 111.com \定义域名,只能一个
ServerAlias www.example.com \定义域名别名,可以多个
ErrorLog “logs/111.com-error_log” \定义错误日志
CustomLog “logs/111.com-access_log” common \定义访问日志

  1. 创建和虚拟主机对应的站点根目录,创建对应的index.php
    在这里插入图片描述
    /usr/local/apache2.4/bin/apachectl -t 检查配置
    /usr/local/apache2.4/bin/apachectl graceful 重新加载配置

4.用curl -x192.168.190.101:80 abc.com 来测试
在这里插入图片描述

Apache用户认证

  1. 全局用户认证
    修改虚拟主机配置文件
    vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
    在这里插入图片描述
    <Directory /data/wwwroot/111.com> //指定认证的目录
    AllowOverride AuthConfig //这个相当于打开认证的开关
    AuthName "111.com user auth" //自定义认证的名字,作用不大
    AuthType Basic //认证的类型,一般为Basic
    AuthUserFile /data/.htpasswd //指定密码文件所在位置
    require valid-user //指定需要认证的用户为全部可用用户
    </Directory>

2.使用htpasswd创建密码
htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。
在这里插入图片描述
再次增加用户时,不需要使用-c选项,如果使用将会覆盖之前生成的文件
/usr/local/apache2.4/bin/apachectl -t 检查配置
/usr/local/apache2.4/bin/apachectl graceful 重新加载配置

扫描二维码关注公众号,回复: 6649590 查看本文章

3.使用curl连接,提示401错误
在这里插入图片描述
curl -I(大写i)/参数 仅返回头部信息
在这里插入图片描述
curl命令的 -u 参数,使用用户名,密码连接
状态码为200,表示连接成功
在这里插入图片描述
输入错误的密码
状态码为401,无法连接
在这里插入图片描述
在windows上测试,在hosts文件中添加对应的域名
连接提示输入用户名密码
在这里插入图片描述
输入用户名密码登陆成功
在这里插入图片描述
2. 单个文件进行认证
修改虚拟主机配置文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
在这里插入图片描述
# <Directory /data/wwwroot/111.com> /注释掉
<FilesMatch 123.php> /当访问123.php时才需要认证
AllowOverride AuthConfig
AuthName "111.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</FilesMatch>
# </Directory> /注释掉

创建123.php
vim /data/wwwroot/111.com/123.php
/usr/local/apache2.4/bin/apachectl -t 检查配置
/usr/local/apache2.4/bin/apachectl graceful 重新加载配置
访问111.com成功
访问111.com/123.php提示被拒绝
输入用户名密码访问111.com/123.php,提示访问成功

在这里插入图片描述

域名跳转

配置域名跳转
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<IfModule mod_rewrite.c>
RewriteEngine on \打开rewrite功能
RewriteCond %{HTTP_HOST} !^111.com$ \定义rewrite条件,当域名不是111.com的时候,进行跳转
RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] \当满足条件时执行的规则,301表示永久跳转,L表示跳转一次
</IfModule>

修改配置文件/httpd.conf ,加载rewrite模块
在这里插入图片描述
/usr/local/apache2.4/bin/apachectl -t 检查配置
/usr/local/apache2.4/bin/apachectl graceful 重新加载配置
跳转成功
在这里插入图片描述

Apache访问日志

1.日志存放位置
/usr/local/apache2.4/logs/
在这里插入图片描述
2.日志格式
vim /usr/local/apache2.4/conf/httpd.conf
在这里插入图片描述
虚拟主机配置中日志使用的格式为common
在这里插入图片描述
3.更改日志格式
将日志默认格式修改为combined
在这里插入图片描述
/usr/local/apache2.4/bin/apachectl -t 检查配置
/usr/local/apache2.4/bin/apachectl graceful 重新加载配置
查看生成的日志文件
在这里插入图片描述

访问日志不记录静态文件

很多网站大多为静态网页,网页内部的图片、css文件等同样有其网址链接,如果不设置,这些无效的信息也将被存入访问日志中,会导致访问日志文件大小快速增加,占用大量存储空间。我们可以通过设置不记录某些文件来减少无效信息,节省内存资源。

在未修改前,我们访问网页的图片,会被日志记录
在这里插入图片描述
修改配置文件
ErrorLog "logs/111.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 //将图片都定义为img
CustomLog "logs/111.com-access_log" combined env=!img//不记录关于变量img的请求日志
在这里插入图片描述
/usr/local/apache2.4/bin/apachectl -t 检查配置
/usr/local/apache2.4/bin/apachectl graceful 重新加载配置
查看生成的日志文件,日志中不再记录对应的访问记录
在这里插入图片描述

访问日志切割

对配置文件进行修改

CustomLog “|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d_log 86400” combined env=!img
语句释义:
/usr/local/apache2.4/bin/rotatelogs工具是apache自带的分割日志的工具
-l(小写L)参数按当前系统时间为基准进行切割(中国为CST),默认UTC(美国时间)
%Y%m%d表示年月日,这样会每天记录一个带日期的日志文件
`86400(s)表示每天都进行切割,24小时等于86400秒``

/usr/local/apache2.4/bin/apachectl -t 检查配置
/usr/local/apache2.4/bin/apachectl graceful 重新加载配置
查看生成日志的情况
在这里插入图片描述

静态元素过期时间

修改主配置文件,去掉expires_module模块前#号
在这里插入图片描述

在虚拟配置文件中增加配置
在这里插入图片描述

<IfModule mod_expires.c>
ExpiresActive on //打开该功能的开关
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 24 hours"
ExpiresByType image/png "access plus 24 hours"
ExpiresByType text/css "now plus 2 hour"
ExpiresByType application/x-javascript "now plus 2 hours"
ExpiresByType application/javascript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2 hours"
ExpiresDefault "now plus 0 min" //除上述外的文件指定默认的过期时间
</IfModule>

释义
acess 表示从访问时间开始
now 表示按当前时间开始
plus 在前面的时间基础上加上
1 hours/days 表示文件的生命周期

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

课堂笔记

下载apr-1.6、apr-util-1.6以及httpd-2.4,分别解压三个源码包
把apr-1.6.3 放到httpd源码包的/srclib/下,改名apr
把apr-util-1.6.1 放到httpd源码包的/srclib/下,改名apr-util4)编译参数./configure --prefix=/dir/ --enable-so --enable-mpms-shared=all --with-mpm=event --enable-mods-shared=most --with-included-apr
说明:这里的/dir/为apache安装路径,根据需求定目录

apache的一些学习文档: https://github.com/aminglinux/apache

猜你喜欢

转载自blog.csdn.net/weixin_43945846/article/details/90038050