zoukankan      html  css  js  c++  java
  • Apache配置(2)

    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.2.2配置验证

    配置完成后,需要到文件路径为C:WindowsSystem32driversetchosts,选择“记事本”或者“写字板"在最下面增加一行:

     192.168.200.142 www. 666. com

    systemctl stop firewalld(关闭防火墙)

     

     

    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/local/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/local/apache2.4/conf/extra/httpd-vhosts.conf编辑虚拟主机

     

     

    再次进入/usr/local/apache2.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/local/apache2.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/local/apache2.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/local/apache2.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的访问

    <Directory /data/wwwroot/www.665.com/download>

     

    再次验证重启

     

     

    2.10访问控制DiretoryFileMatch

     

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

     

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

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

     

    再次验证重启

     

    遇到问题

     

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

    2.12限制user_agent

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

     

    再次验证重启

     

    curl的-A选项指定user_agent,

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

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

  • 相关阅读:
    怎样创建动态扩容数组?
    怎样终止一个线程?
    模式识别
    基于Linux根据僵尸网络病毒平台《比尔盖茨》
    web.xml在&lt;init-param&gt;一个错误
    DTD学习笔记
    Java排序算法(四):Shell排序
    VC6迁移到VS2008几个问题——良好的代码,从我做起,从现在开始。
    Maven 建 Struts2 基本实现 CURD Controller
    Andy&#39;s First Dictionary
  • 原文地址:https://www.cnblogs.com/lzp123/p/12101878.html
Copyright © 2011-2022 走看看