LAMP3

本文详细介绍了Apache服务器的配置方法,包括虚拟主机设置、用户认证、域名跳转、访问日志管理及静态文件缓存策略。通过具体步骤和示例,帮助读者掌握Apache的高级配置技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

11.16/11.17 Apache默认虚拟主机

11.18 Apache用户认证

11.19/11.20 域名跳转

11.21 Apache访问日志

11.22 访问日志不记录静态文件

11.23 访问日志切割

11.24 静态元素过期时间

 

11.16/11.17 Apache默认虚拟主机

1,注意电脑上的路径为

C:\Windows\System32\drivers\etc  ,hosts的文件

 

2,笔记本编辑hosts文件,记事本就可以打开,也可以常用notepadd+

保存,这时候从windows上去ping,发现,www.zhao.com指向到了192.168.101.3,也就是linux上

 

4. 编辑httpd.conf配置文件

vim /usr/local/apache2.4/conf/httpd.conf

找到关键字Virtual hosts,并且将下面的行注释去掉

 

5. 编辑虚拟主机配置文件 :

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

修改下对应的字段

DocumentRoot:定义网站根目录

ServerName:网站名称

ServerAlias:指定别名域名(可以有多个别名域名,同时指向一个ip,可以有多个域名)

ErrorLog:设定错误日志

CustomLog:设定访问日志

这里有两个virtualhost,一个是主服务器的域名,一个是备用服务器的配置,这里我们是用主用服务器的即可

注:一旦虚拟主机配置文件生效,则默认主机配置的文件定义的内容会失效

 

6,创建网站目录

 

[root@zhao ~]# mkdir /data/wwwroot/

[root@zhao ~]# mkdir /data/wwwroot/zhao.com/

[root@zhao ~]# mkdir /data/wwwroot/111.com/

 

7,创建index文件

vim /data/wwwroot/zhao.com/index.php

<?php

echo "abc.com";

 

然后检查语法错误

 

[root@zhao ~]# /usr/local/apache2.4/bin/apachectl -t

Syntax OK

vim /usr/local/apache2.4/conf/httpd.conf注意把http中的require打开

 

启动httpd

/usr/local/apache2.4/bin/apachectl start

最后使用curl  -x 验证是否可用

curl -x //发送网络请求,-x选项为网络请求增加代理,相当于hosts的作用

curl -x192.168.101.3:80 zhao.com

Web访问为

第一个虚拟主机则是Apache服务的默认虚拟主机,无论访问哪个域名(其他虚拟主机定义的域名除外),只要指向了服务器的IP地址,都会跳转至默认虚拟主机。

 

 

11.18 Apache用户认证

 

 

[root@master ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>

    DocumentRoot "/data/wwwroot/zhao.com"

    ServerName zhao.com

    ServerAlias www.example.com

    <Directory /data/wwwroot/zhao.com>  ##指定认证的目录

          AllowOverride AuthConfig       ##这个相当于打开认证的开关

          AuthName "zhao.com user auth"   ##自定义认证的名字,作用不大

          AuthType Basic                 ##认证的类型,一般为Basic

          AuthUserFile /data/.htpasswd   ##指定密码文件所在位置

          require valid-user             ##指定需要认证的用户为全部可用用户

 

创建用户认证所需的用户和密码

/usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd lem

-c 创建密码 –m为md5的加密方式

/usr/local/apache2.4/bin/apachectl –t   //重新加载

/usr/local/apache2.4/bin/apachectl graceful //重新加载

再次访问网页,则提示输入账户和密码了

 

 

 

11.19/11.20 域名跳转

配置文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

[root@zhao ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

DocumentRoot "/data/wwwroot/zhao.com"

ServerName def.com

ServerAlias www.zhao.com www.123.com

<IfModule mod_rewrite.c> //需要mod_rewrite模块支持

RewriteEngine on //打开rewrite功能

RewriteCond %{HTTP_HOST} !^def.com$ //定义rewrite的条件,主机名(域名)不是www.123.com满足条件

RewriteRule ^/(.*)$ http://def.com/$1 [R=301,L] //定义rewrite规则,当满足上面的条件时,这条规则才会执行

</IfModule>

ErrorLog "logs/def.com-error_log"

CustomLog "logs/def.com-access_log" common

</VirtualHost>

R=301 永久重定向;R=302 临时重定向

检测Apache是否加载了rewrite模块

[root@zhao ~]# /usr/local/apache2.4/bin/apachectl -M|grep -i rewrite

[root@zhao ~]# //输出为空,则说明Apache没有加载此模块//若无该模块,需要编辑配置文件httpd.conf,删除rewrite_module (shared) 前面的#

[root@zhao ~]# /usr/local/apache2.4/bin/apachectl -M|grep -i rewrite

rewrite_module (shared) //再次检测,有相应输出,说明模块已加载

 

11.21 Apache访问日志

可以进入之前我们配置的日志文件中

日志格式

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

LogFormat "%h %l %u %t \"%r\" %>s %b" common //默认格式

%h:来源IP

%l :用户

%u:用户名密码

%t:时间

%r:行为

%>s:状态码

%b:大小

%{Referer}:访问目标网址前所在的网址(比如,在猿课论坛上创建一个指向本地Apache服务的网址,那么在本地Apache的访问日志上的Referer一项就会显示猿课论坛的网址)

 

%{User-Agent}:用户代理,就是用户通过何种方式进行访问(curl,谷歌浏览器等)

修改日志格式

[root@zhao ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

 

CustomLog "logs/def.com-access_log" combined //common改为combined

11.22 访问日志不记录静态文件

原因是因为很多图片一类的,可以选择不记录日志

 

例如编译文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

ErrorLog "logs/def.com-error_log"

SetEnvIf Request_URI ".*\.gif$" tupian //将图片格式设置为标签tupian

SetEnvIf Request_URI ".*\.jpg$" tupian //将图片格式设置为标签tupian

SetEnvIf Request_URI ".*\.png$" tupian //将图片格式设置为标签tupian

SetEnvIf Request_URI ".*\.bmp$" tupian //将图片格式设置为标签tupian

SetEnvIf Request_URI ".*\.swf$" tupian //将图片格式设置为标签tupian

SetEnvIf Request_URI ".*\.js$" tupian //将图片格式设置为标签tupian

SetEnvIf Request_URI ".*\.css$" tupian //将图片格式设置为标签tupian

CustomLog "logs/def.com-access_log" combined env=!tupian //访问日志记录排除带有标签为tupain的内容

 

11.23 访问日志切割

Apache服务自带日志切割工具

CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.log 86400" combined env=!img

%Y%m%d日,86400代表一天,开启之后每日生成一个新的文件

 

11.24 静态元素过期时间

目的是为了把静态文件缓存在本地电脑中

配置文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

 

<IfModule mod_expires.c>

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

去掉注释

vim /usr/local/apache2.4/conf/httpd.conf

 

 

/usr/local/apache2.4/bin/apachectl -M |grep expires

 

这样代表模块开启啦~

依然重新开启加载

[root@zhao ~]# /usr/local/apache2.4/bin/apachectl -t

Syntax OK

[root@zhao ~]# /usr/local/apache2.4/bin/apachectl graceful

 

扩展 
apache虚拟主机开启php的短标签 http://ask.apelearn.com/question/5370 
apache日志记录代理IP以及真实客户端IP http://ask.apelearn.com/question/960 
apache只记录指定URI的日志 http://ask.apelearn.com/question/981 
apache日志记录客户端请求的域名 http://ask.apelearn.com/question/1037 
apache 日志切割问题 http://ask.apelearn.com/question/566 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值