Apache配置

Posted lzp123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache配置相关的知识,希望对你有一定的参考价值。

2.1默认虚拟主机

2.1.1介绍

任何一个城名指向这台服务器,只要是没有对应的虚拟主机,就会由这个默认虚拟主机来处理

2.1.2配置

编辑配置文件httpd,conf

 技术图片

 编辑虚拟主机配置文件

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

 技术图片

2.1.3配置验证

 Mkdir -p/data/ wwwroot/aming.com /data/wwwroot/www.666.com

 技术图片

 技术图片

技术图片

2.2用户认证

配置/usr/local/apache2.4/conf/extra/httpd-vhosts.conf编辑666.com虚拟主机:

 技术图片

配置完成后,创建密码文件

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

(htpasswd命令为创建用户的工具,-c为create (创建) ,-m指定密码加密方式为MD5,

/data/ .htpasswd为密码文件,aming为要创建的用户。第一次执行该命令需要加-c,

第二次再创建新的用户时,就不用加一C了,否则/data/.htpasswd文件会被重置,之前的用户被清空)

 技术图片

 

 技术图片

 

 技术图片

2.3域名跳转

配置/usr/local/apache2.4/conf/extra/httpd-vhosts.con

 技术图片

实现域名跳转,需要有rewrite模块支持,所以先查看httpd是否已经加载该模块

/usr/local/apache2.4/bin/apachectl –M|grep –I rewrite 如果没有任何输出需要编辑配置文件

Vim /usr/local/ apache2.4/conf/httpd.conf  搜索rewrite,把首行#删除

/usr/1ocal/apache2.4/bin/apachectl graceful

再次执行第一步

 技术图片

测试

 技术图片

2.4访问日志

访问日志作用很大,不仅可以记录网站的访问情况,还可以在网站有异常发生时帮助我们定位问题,比如当有攻击时,是可以通过查看日志看到一些规律的

配置httpd访问日志,首先要在主配置文件中定义访问日志的格式,打开主配置文件:

Vim /usr/local/apache2.4/conf/httpd.conf  搜索LogFormat

 技术图片

建议使用第一个日志,因为记录的信息更全

%h为访问网站的IP;

%l为远程登录名,这个字段基本上为“-";

%u为用户名,当使用用户认证时,这个字段为认证的用户名;

%t为时间;

%r为请求的动作(比如用curl -I时就为HEADE );

%s为请求的状态码,写成%>s为最后的状态码;

%b为传输数据大小;

再次进入/usr/localapache2.4/conf/extra/httpd-vhosts.conf编辑虚拟主机

 技术图片

 

 技术图片

再次进入/usr/localapache2.4/conf/extra/httpd-vhosts.conf编辑虚拟主机

 技术图片

(先定义了一个image-request环境变量,把gif、 jpg、png、bmp、 swf、 js、css等格式的文件全部归类到image . request里,后面的env=!image-request有用到一个“!”,这相当于取反了,意思是把Image-request以外的类型文件记录到日志里)

2.5访问日记不记录静态文件

 技术图片

2.6访问日记切割

rotatelogs命令:这个rotetelogs为httpd自带切割日志的工具,它会把访问日志按定义的文件名格式进行切割,其中86400单位是“秒”,相当于“一天”

 技术图片

2.7静态元素过期时间

再次进入/usr/localapache2.4/conf/extra/httpd-vhosts.conf编辑虚拟主机

 技术图片

再次验证重启

检查Thttpd是否加载expires模块:

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

如果没有任何输出,说明当前httpd并不支持expires模块,需要修改配置文件,

打开该模块

vim /usr/local/ apache2.4/conf/httpd.conf 搜索expires找到LoadModule expires_ module modules/mod_ expires .so把首行#删除,之后再次重启,输入下图命令

 技术图片

测试

 技术图片

2.8配置防盗链

进入/usr/localapache2.4/conf/extra/httpd-vhosts.conf编辑虚拟主机配置文件

定义允许访问链接的referer,其中^$为空referer,当直接在浏览器里输人图片地址去访问时,它的referer就为空,使用filesmatch来定义需要保护的文件类型,访问txt. doc . mp3.zip、rar、jpg、gif格式的文件,当访问这样类型的文件时就会被限制

 技术图片

再次验证重启

 技术图片

2.9访问控制Diretory

对于一些比较重要的网站内容,除了可以使用用户认证限制访问之外,还可以通过其他一些方法做到限制,如可以限制IP,也可以限制user_ agent,限制IP指的是限制访问网站的来源IP,而限制user_ agent,用来限制恶意或者不正常的请求。

进入/usr/localapache2.4/conf/extra/httpd-vhosts.conf编辑配置文件

使用<Directory>来指定要限制访问的目录,order定义控制顺序,哪个在前面就先匹配哪个规则。下图中deny在前面,所以先匹配Deny fromall这样所有的来源IP都会被限制,然后匹配Allow from127.0.0.1,这样又允许了127.0.0.1这个IP。最终的效果是,只允许来源IP为127.0.0.1的访问

 技术图片

再次验证重启

 技术图片

 技术图片

2.10访问控制DiretoryFileMatch

 技术图片

进入/usr/localapache2.4/conf/extra/httpd-vhosts.conf编辑配置文件

 技术图片

2.11限制某个目录禁止解析php

进入/usr/localapache2.4/conf/extra/httpd-vhosts.conf编辑配置文件

 技术图片

再次验证重启

 技术图片

遇到问题

 技术图片

解决办法:删除文件upload,创建目录upload

2.12限制user_agent

进入/usr/localapache2.4/conf/extra/httpd-vhosts.conf编辑配置文件

 技术图片

再次验证重启

 技术图片

curl的-A选项指定user_ agent,

第一个请求,user_ agent为“curl/7.29.0" 匹配了第一个条件,所以会403;

第二个请求,user_ agent为自定 义的“123123” 没有匹配任何条件,所以状态码为200

以上是关于Apache配置的主要内容,如果未能解决你的问题,请参考以下文章

linux apache 配置文件在哪

mac下如何配置PHP apache?

怎样配置apache的vhosts文件

wdcp apache 配置文件在哪

Apache的配置详解,最好的Apache配置文档

debian下的apache2的配置文件apache2.conf缺失语句?