Apache服务配置详细讲解 apache 服务器
yuyutoo 2024-10-15 16:58 12 浏览 0 评论
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 、<IfModule> 容器:容器作用于模块,他会首先判断模块是否载入,然后再决定是否进行处理,即只有当判断结果为真时,才会执行容器内的指令,相反如果为假,则会全部忽略,可以使用<IfModule 模块名>或者<IfModule !模块名> 来判断模块是否载入
<IfModule mpm_netware_module>
DirctoryIndex index.html
</IfModule>
如果载入则执行
<IfModule !mpm_netware_module>
DirctoryIndex index.html
</IfModule>
如果不载入则执行
2 <IfDefine> 容器:封装一组条件为真时才生效的指令,作用于 server config, virtual host, directory, .htaccess ,和IfModule区别在于,他是以模块是否加载作为判断,但是IfDefine是以条件为判断
依据
<IfDefine Proxy>
LoadModule proxy_module modules/libproxy.so
</IfDefine>
3 <Directory> <DirectoryMatch> 容器:
Directory: 让它封装的指令在它的指定的目录或者他的子目录起作用,这个目录必须是一个完整的路径,当然你也可以使用通配符* ?匹配目录,也考虑利用使用[]来确定字符范围,不过不论是哪一种都不能匹配/
<Directory /var/apache/html>
Order Deny,Allow
Deny from all
</Directory>
上述例子禁止了对/var/apache/html目录的访问权限。任何请求到/var/apache/html都会被拒绝
如果希望目录使用正则表达式,那么需要在前面加一个~
<Directory ~ "^/var/apache[0-9]{2}/html">
Order Deny,Allow
Allow from all
</Directory>
DirectoryMatch: 和Directory作用类似,只不过他可以直接接受正则匹配 而不需要加一个~符号
<DirectoryMatch "^/var/apache[0-9]{2}/html">
Order Deny,Allow
Allow from all
</DirectoryMatch>
4 <Files> 和 <FilesMatch>
Files: 只作用于文件,也可以使用通配符和[]以及在正则表达式前面~来使用正则表达式
<Files "^\.css">
Order Deny,Allow
Allow from All
</Files>
FilesMatch: Files 而不需要加一个~符号
<FilesMatch "\.(gif|jpe?g|png)$">
Order Deny,Allow
Allow from All
</FilesMatch>
5 <Location> 和 <LocationMatch>: 只是对URL进行访问控制
<Location /cgi>
Order Allow,Deny
Deny from All
</Location>
如果以cgi开头URL则会被拒绝
另外还可以将URL 请求映射到Apache模块处理器上,例如使用mod_status模块:
<Location /server-status>
SetHandler server-status
</Location>
如果使用上面的配置。那么访问/server-status,apache会将连接交给mod_status模块处理,并返回一个Apache服务器运行状态页面
容器的处理顺序问题:
Apache 会优先处理Directory 容器(但是不会处理带有正则表达式的Directory和.htaccess,)接着处理Files 和 FilesMatch 容器,再接着就是处理Location 和LocationMatch容器
<Location /var/apache/html>
Order deny,allow
Allow from All
</Location>
<Direcotry /var/apache/html>
Order allow,deny
Allow from All
Deny from www.jons.com
</Direcotry>
上述例子,由于Apache会先处理<Directory>容器,最后处理的<Location>容器会覆盖之前Directory配置,因此对于www.json.com将是允许被用户访问的,如果容器相同则按照字典顺序由短到长来处理。
相关推荐
- Python操作Word文档神器:python-docx库从入门到精通
-
Python操作Word文档神器:python-docx库从入门到精通动动小手,点击关注...
- Python 函数调用从入门到精通:超详细定义解析与实战指南 附案例
-
一、函数基础:定义与调用的核心逻辑定义:函数是将重复或相关的代码块封装成可复用的单元,通过函数名和参数实现特定功能。它是Python模块化编程的基础,能提高代码复用性和可读性。定义语法:...
- 等这么长时间Python背记手册终于来了,入门到精通(视频400集)
-
本文毫无套路!真诚分享!前言:无论是学习任何一门语言,基础知识一定要扎实,基础功非常的重要,找一个有丰富编程经验的老师或者师兄带着你会少走很多弯路,你的进步速度也会快很多,无论我们学习的目的是什么,...
- 图解Python编程:从入门到精通系列教程(附全套速查表)
-
引言本系列教程展开讲解Python编程语言,Python是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,它也是互联网最热门的编程语言之一。Python生态丰富,库(模块)极其丰富,这使...
- Python入门教程(非常详细)从零基础入门到精通,看完这一篇就够
-
本书是Python经典实例解析,采用基于实例的方法编写,每个实例都会解决具体的问题和难题。主要内容有:数字、字符串和元组,语句与语法,函数定义,列表、集、字典,用户输入和输出等内置数据结构,类和对象,...
- Python函数全解析:从入门到精通,一文搞定!
-
1.为什么要用函数?函数的作用:封装代码,提高复用性,减少重复,提高可读性。...
- Python中的单例模式:从入门到精通
-
Python中的单例模式:从入门到精通引言单例模式是一种常用的软件设计模式,它保证了一个类只有一个实例,并提供一个全局访问点。这种模式通常用于那些需要频繁创建和销毁的对象,比如日志对象、线程池、缓存等...
- 【Python王者归来】手把手教你,Python从入门到精通!
-
用800个程序实例、5万行代码手把手教你,Python从入门到精通!...
- Python从零基础入门到精通:一个月就够了
-
如果想从零基础到入门,能够全职学习(自学),那么一个月足够了。...
- Python 从入门到精通:一个月就够了
-
要知道,一个月是一段很长的时间。如果每天坚持用6-7小时来做一件事,你会有意想不到的收获。作为初学者,第一个月的月目标应该是这样的:熟悉基本概念(变量,条件,列表,循环,函数)练习超过30个编...
- Python零基础到精通,这8个入门技巧让你少走弯路,7天速通编程!
-
Python学习就像玩积木,从最基础的块开始,一步步搭建出复杂的作品。我记得刚开始学Python时也是一头雾水,走了不少弯路。现在回头看,其实掌握几个核心概念,就能快速入门这门编程语言。来聊聊怎么用最...
- 神仙级python入门教程(非常详细),从0到精通,从看这篇开始!
-
python入门虽然简单,很多新手依然卡在基础安装阶段,大部分教程对一些基础内容都是一带而过,好多新手朋友,对一些基础知识常常一知半解,需要在网上查询很久。...
- Python类从入门到精通,一篇就够!
-
一、Python类是什么?大家在生活中应该都见过汽车吧,每一辆真实存在、能在路上跑的汽车,都可以看作是一个“对象”。那这些汽车是怎么生产出来的呢?其实,在生产之前,汽车公司都会先设计一个详细的蓝图...
- 学习Python从入门到精通:30天足够了,这才是python基础的天花板
-
当年2w买的全套python教程用不着了,现在送给有缘人,不要钱,一个月教你从入门到精通1、本套视频共487集,本套视频共分4季...
- 30天Python 入门到精通(3天学会python)
-
以下是一个为期30天的Python入门到精通学习课程,专为零基础新手设计。课程从基础语法开始,逐步深入到面向对象编程、数据处理,最后实现运行简单的大语言模型(如基于HuggingFace...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)