热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Apache服务配置详细讲解

Apahce配置指令可以分为两大块,核心指令和第三方提供的指令。在apache中,每一个指令都对应着一个模块,而在所有模块中,最重要的就是core_module,so_module,http_module,以及mpm模块
Apahce 配置指令可以分为两大块,核心指令和第三方提供的指令。在apache中,每一个指令都对应着一个模块,而在所有模块中,最重要的就是core_module,so_module,http_module,以及mpm模块,他们除了so_moudle以外的其他模块都不可以关掉或者禁止.

一:httpd.conf

(1) 主服务器部分

1 、ServerName: 定义apache默认主机名,可以是域名或者IP地址

2 、ServerRoot: 用于定义服务器所在的目录,这个路径通常是在配置时候由--prefix来指定的

3 、DocumentRoot: 用于指定apache提供页面服务的根目录,这个路径必须是绝对路径而不是相对路径,如果有空格还需要用引号括起来

4 、ServerAdmin: 服务器出错后给管理员发邮件的地址

5 、ServerAlias 和 Alias: 都用于映射目录,只是ServerAlias将映射的目录识别为CGI脚本目录,并将此目录所有文件都作为CGI脚本对待。但是Alias只是映射为一个普通的目录

6 、User 和 Group: 用于定义用于运行apache 子进程的用户和用户组

7 、Listen: 用来定义监听apache的端口号

8 、LoadModule 指令:用于加载模块或者目标文件 LoadModule cgi_module modules/mod_cgi.so_module

9、 ErrorDocument: 自义错误页面信息 ErrorDocument 500 "unknown error" ErrorDocument 404 "/var/server/www/cgi-bin/missing_404.pl" ErrorDocument 402 http://www.nicky.com/error_402.html

10、 options : 决定在哪些目录中使用那些特性,这些特性如下:

None: option 指令将不会起作用

ExecCGI: 允许当前目录下执行CGI脚本

Includes: 允许使用SSI功能

IncludesNOEXEC: 允许使用SSI功能,但是exec cgi and exec cmd 功能禁用

Indexes: 开起索引功能,比如一个请求到目录URLz中没有有DirectoryIndex 指令指定的索引文件,那么服务器会自动返回一个请求目录内容列表

FollowSymLinks: 允许在当前环境使用符号连接,但是在Location 容器中会被忽略

All: 使用除MultiViews之外的所有特性,也是options的默认参数

MultiViews: 用于启动mod_negotiations模块提供的多重视图功能

11 、ServerTokens: OS/Major/Full 影响报错页脚信息的详细程度,一般不建议使用

(2) 容器部分
1 、 容器:容器作用于模块,他会首先判断模块是否载入,然后再决定是否进行处理,即只有当判断结果为真时,才会执行容器内的指令,相反如果为假,则会全部忽略,可以使用或者 来判断模块是否载入


DirctoryIndex index.html

如果载入则执行

DirctoryIndex index.html

如果不载入则执行

2 容器:封装一组条件为真时才生效的指令,作用于 server config, virtual host, directory, .htaccess ,和IfModule区别在于,他是以模块是否加载作为判断,但是IfDefine是以条件为判断

依据

LoadModule proxy_module modules/libproxy.so

3 容器:

Directory: 让它封装的指令在它的指定的目录或者他的子目录起作用,这个目录必须是一个完整的路径,当然你也可以使用通配符* ?匹配目录,也考虑利用使用[]来确定字符范围,不过不论是哪一种都不能匹配/

Order Deny,Allow

Deny from all

上述例子禁止了对/var/apache/html目录的访问权限。任何请求到/var/apache/html都会被拒绝

如果希望目录使用正则表达式,那么需要在前面加一个~

Order Deny,Allow

Allow from all

DirectoryMatch: 和Directory作用类似,只不过他可以直接接受正则匹配 而不需要加一个~符号

Order Deny,Allow

Allow from all

4
Files: 只作用于文件,也可以使用通配符和[]以及在正则表达式前面~来使用正则表达式

Order Deny,Allow
Allow from All

FilesMatch: Files 而不需要加一个~符号

Order Deny,Allow
Allow from All

5 : 只是对URL进行访问控制

Order Allow,Deny
Deny from All

如果以cgi开头URL则会被拒绝
另外还可以将URL 请求映射到Apache模块处理器上,例如使用mod_status模块:

SetHandler server-status

如果使用上面的配置。那么访问/server-status,apache会将连接交给mod_status模块处理,并返回一个Apache服务器运行状态页面

容器的处理顺序问题
Apache 会优先处理Directory 容器(但是不会处理带有正则表达式的Directory和.htaccess,)接着处理Files 和 FilesMatch 容器,再接着就是处理Location 和LocationMatch容器

Order deny,allow

Allow from All

Order allow,deny

Allow from All

Deny from www.jons.com

上述例子,由于Apache会先处理容器,最后处理的容器会覆盖之前Directory配置,因此对于www.json.com将是允许被用户访问的,如果容器相同则按照字典顺序由短到长来处理。

更多相关问题请访问:linux视频教程

以上就是Apache服务配置详细讲解的详细内容,更多请关注其它相关文章!


推荐阅读
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
author-avatar
亲爱的常青藤先生
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有