`
wx1569466809
  • 浏览: 72236 次
文章分类
社区版块
存档分类
最新评论

Apache优化——访问控制

 
阅读更多

11.25 配置防盗链

编辑虚拟主机配置文件:

[root@adailinux ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <Directory /data/wwwroot/111.com>
        SetEnvIfNoCase Referer "http://111.com" local_ref
        SetEnvIfNoCase Referer "http://ask.apelearn.com" local_ref
        SetEnvIfNoCase Referer "^$" local_ref
        #定义referer白名单
        <FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)">
            Order Allow,Deny
            Allow from env=local_ref
        #定义规则:允许变量local_ref指定的referer访问,拒绝其他所有访问。   
        </FilesMatch>
    </Directory>

    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
    CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img
    #CustomLog "logs/111.com-access_log" combined env=!img
</VirtualHost>  

检测语法错误并重载:
[root@adailinux ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@adailinux ~]# /usr/local/apache2.4/bin/apachectl graceful

注: 如果在referer白名单中不加“^#”(空referer),直接访问指定内容将会被拒绝。

curl命令

curl -e 指定referer

[root@adailinux ~]# curl -e "http://ask.apelearn.com/" -x192.168.8.131:80 111.com/baidu.png -I

11.26 访问控制Directory

编辑虚拟主机配置文件:

在配置文件加入如下参数: 
[root@adailinux admin]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

……
    <Directory /data/wwwroot/111.com/admin/>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
        #只允许IP--127.0.0.1访问“/data/wwwroot/111.com/admin/”目录中的内容
    </Directory>
……

[root@adailinux admin]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@adailinux admin]# /usr/local/apache2.4/bin/apachectl graceful

测试:
[root@adailinux admin]# curl -x127.0.0.1:80 111.com/admin/index.php
121212

更换IP访问:
[root@adailinux admin]# curl -x192.168.8.131:80 111.com/admin/index.php -I
HTTP/1.1 403 Forbidden
Date: Wed, 02 Aug 2017 08:48:49 GMT
Server: Apache/2.4.27 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1

#报错(403)!!!即,只有指定IP--127.0.0.1可以访问该目录。  

**说明:**本节用于设定指定IP访问指定目录的权限!

11.27 访问控制FilesMatch

使用FilesMatch参数:  

[root@adailinux admin]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
……
    <Directory /data/wwwroot/111.com>
        <FilesMatch admin.php(.*)>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
        </FilesMatch>
    </Directory>
……

[root@adailinux admin]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@adailinux admin]# /usr/local/apache2.4/bin/apachectl graceful


[root@adailinux admin]# curl -x127.0.0.1:80 111.com/admin.php -I
HTTP/1.1 404 Not Found
Date: Wed, 02 Aug 2017 09:24:22 GMT
Server: Apache/2.4.27 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1

#因为访问的文件不存在,所以报错:404!  

说明: 本节内容应用于对某些请求设定权限。

扩展:

apache几种限制ip的方法

  • 禁止访问某些文件/目录

    增加Files选项来控制,比如要不允许访问 .inc 扩展名的文件,保护php类库:

    <Files~"\.inc$">
    Order Allow,Deny
    Deny from all
    </Files>
    
  • 禁止访问某些指定的目录

    可以使用<DirectoryMatch> 正则匹配:

    <Directory~"^/var/www/(.+/)*[0-9]{3}">
    Order Allow,Deny
    Deny from all
    </Directory>
    

也可以使用目录全局路径

  • 通过文件匹配来进行禁止,比如禁止所有针对图片的访问:

    <FilesMatch \.?i:gif|jpe?g|png)$>
    Order Allow,Deny
    Deny from all
    <FilesMatch>
    
  • 针对URL相对路径的禁止访问

    <Location /dir/>
    Order Allow,Deny
    Deny from all
    </Location>
    

apache设置自定义header

  1. 在设置自定义header前,需要先检测一下你的httpd(Apache)是否加载了mod_headers
[root@adailinux ~]# /usr/local/apache2/bin/apachectl -M

如果没有加载,需要进行加载配置。
2. 设置header

在Apache配置文件中加入下面参数:

Header add MyHeader "Hello"

apache的keepalive和keepalivetimeout

  在APACHE的httpd.conf中,KeepAlive指的是保持连接活跃,类似于Mysql的永久连接。换一句话说,如果将KeepAlive设置为On,那么来自同一客户端的请求就不需要再一次连接,避免每次请求都要新建一个连接而加重服务器的负担。

  KeepAlive的连接活跃时间当然是受KeepAliveTimeOut限制的。如果第二次请求和第一次请求之间超过KeepAliveTimeOut的时间的话,第一次连接就会中断,再新建第二个连接。

  所以,一般情况下,图片较多的网站应该把KeepAlive设为On。但是KeepAliveTimeOut应该设置为多少秒就是一个值得讨论的问题了。

  如果KeepAliveTimeOut设置的时间过短,例如设置为1秒,那么APACHE就会频繁的建立新连接,当然会耗费不少的资源;反过来,如果KeepAliveTimeOut设置的时间过长,例如设置为300秒,那么APACHE中肯定有很多无用的连接会占用服务器的资源,也不是一件好事。

  所以,到底要把KeepAliveTimeOut设置为多少,要看网站的流量、服务器的配置而定。

  其实,这和MySql的机制有点相似,KeepAlive相当于mysql_ connect或mysql_ pconnect,KeepAliveTimeOut相当于wait_timeout。

转载于:https://my.oschina.net/1995blog/blog/1594030

分享到:
评论

相关推荐

    优化nginx大并发——轻松应对上万并发访问

    总结来说,优化Nginx以应对大并发访问,不仅需要对系统参数进行调整,还要对Nginx的配置进行精细控制,通过合理的进程管理、网络连接处理和资源分配策略,实现高效且稳定的高并发服务。同时,持续的压力测试和性能...

    apache优秀Java开源项目源代码—— apache-roller!

    7. **安全与认证**:Roller提供了用户登录、权限控制等功能,源码中有实现基于角色的访问控制(RBAC)的部分,对于理解Web应用安全机制有很大帮助。 8. **Web服务API**:Roller还提供了一套RESTful API,允许外部...

    apache-tomcat-8——Linux版

    Apache Tomcat 8是Java Servlet和JavaServer Pages (JSP)技术的一个开源实现,它允许开发者在Linux操作系统上部署和运行Web应用程序。Tomcat作为轻量级的应用服务器,以其高效、稳定和易于管理的特点,被广泛应用于...

    建站资料——Apache建站配置指南

    Apache允许你控制特定目录的访问权限。例如,可以使用`&lt;Directory&gt;`指令限制对某个目录的访问: ```apacheconf Require all granted Options -Indexes ``` 这里禁止了目录索引显示,并仅允许授权用户访问。 五...

    apache服务器安装程序 apache_2.2.6-win32-x86

    这个名为"apache_2.2.6-win32-x86"的压缩包文件包含的是Apache服务器的一个特定版本——2.2.6,专为32位Windows操作系统设计。在本文中,我们将详细探讨Apache服务器的安装过程以及与PHP的集成。 1. **Apache服务器...

    apache_2.2.6_win32

    这个"apache_2.2.6_win32"压缩包文件代表的是Apache服务器的特定版本——2.2.6版,针对Windows 32位操作系统优化。在本文中,我们将深入探讨Apache 2.2.6版本及其在Windows环境中的安装和配置。 1. **Apache服务器...

    Apache体系结构ppt

    3. **网络通信库—— APR(Apache Portable Runtime)** APR库为Apache提供了跨平台的低级I/O操作,包括文件操作、内存管理、网络通信等功能。它使得Apache可以在多种操作系统上运行,增强了其移植性。 4. **配置...

    apache2.4.9 for windows

    4. 更好的事件模型:Apache 2.4引入了新的MPM(多进程模块)——Event MPM,它结合了预连接和多线程的优点,提高了并发性能。 5. 更佳的日志记录:支持自定义日志格式,以及更灵活的日志分割和处理策略。 6. 身份...

    实战Nginx取代Apache的高性能Web服务器.rar

    4. **URL重写与访问控制**:介绍使用Nginx进行URL重写以优化SEO,以及通过限速、IP黑白名单等方式实现访问控制。 5. **日志管理与性能监控**:讲解如何配置Nginx的日志格式,以及如何利用这些日志进行性能分析和...

    windows system apache2.4 服务器

    - 限制Apache的访问权限,避免不必要的目录浏览和文件上传功能。 - 优化Apache配置,如调整KeepAlive、MaxKeepAliveRequests和MaxConnectionsPerChild等参数,以提高服务器性能。 总的来说,Apache2.4在Windows上的...

    零成本实现Web性能测试-基于Apache+JMeter

    例如,可以使用JMeter模拟大量用户访问Apache服务器,然后分析Apache的访问日志,获取更深入的性能洞察。 5. **性能优化策略**:通过JMeter测试,开发者可以识别性能瓶颈,例如数据库查询慢、服务器配置不当或代码...

    inux下Apache_配置详解

    总的来说,Apache的配置涉及了服务器的基本信息、目录权限、访问控制和性能优化等多个方面。正确配置这些参数可以确保网站稳定、高效地运行,并提供良好的用户体验。在调整配置时,应根据实际的硬件资源、预期的访问...

    apache免费下载版

    同时,它支持URL重写、访问控制、身份验证等多种功能,以保护服务器资源并优化用户体验。 总之,“apache免费下载版”为用户提供了在Linux系统上建立高效、安全、可定制的Web服务器的机会,其开源特性使得开发者...

    apache-tomcat-6.0.18

    此外,Tomcat的管理界面——Manager App和Host Manager,允许用户通过Web接口管理应用程序的部署、更新和卸载。这些管理工具位于`http://localhost:8080/manager/html`和`http://localhost:8080/host-manager/html`...

    ApacheTomcat8_jb51.rar

    4. **安全性**:Tomcat支持多种安全机制,如SSL/TLS加密、角色基础的访问控制(RBAC)、JAAS认证等,需要根据应用需求进行配置。 5. **性能优化**:可以通过调整线程池大小、开启连接器的Keep-Alive功能、使用NIO...

    apache derby

    6. **权限管理**:管理用户和角色,设置访问控制。 总之,这个压缩包很可能包含了一个定制版的Apache Derby数据库系统,具有特定版本的核心功能插件和用户友好的管理界面插件,适合需要轻量级数据库解决方案的...

    Apache7.073-32位

    在这个特定的版本——Apache Tomcat 7.0.50中,我们看到了对性能、稳定性和安全性的优化。 1. **版本信息**: Apache Tomcat 7.0.x系列是Tomcat 7的一个稳定分支,7.0.50是这个系列的一个重要更新。这个版本相较于...

    apache-server-httpd

    同时,还可以通过防火墙规则、访问控制列表(.htaccess)来限制对服务器资源的访问。 5. **性能优化**:通过缓存机制、负载均衡和预读取等功能,Apache可以提高响应速度和处理大量并发请求的能力。 6. **日志记录*...

    apache-hive-2.3.4-bin.tar.gz

    Apache Hive 2.3.4是该项目的稳定版本,它包含了一系列改进和优化,提高了性能和易用性。 Hive的核心概念包括: 1. **元数据**:Hive管理着关于表、列、分区等的元数据,这些信息存储在元数据存储(如MySQL或Derby...

    apache-tomcat-9.0.45.zip

    在管理和监控方面,Tomcat提供了一个内置的管理界面——Manager App,通过浏览器访问"http://localhost:8080/manager/html"(默认端口和路径),管理员可以进行应用的部署、卸载、重启动等操作。另外,"Host Manager...

Global site tag (gtag.js) - Google Analytics