`
friendsys
  • 浏览: 338701 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论
阅读更多
对于Apache的学习,可以参考对应文档的使用
安装时候最好选择自定义的安装,然后安全全部的服务,那样容易配置一些.
如果不通过DNS进行工作,可以通过配置httpd文件对IP进行配置,ServerName 节点用于配置访问的IP与端口,ps:端口配置无效,由Listen 8090决定
可以通过将Apache的bin目录加入到path中,然后就可以在cmd命令行中通过httpd执行命令,如:httpd -k restart //重启服务器

文档摘机:

地址与端口绑定:  相关指令Listen <VirtualHost>
使服务器在所有地址上
同时接受来自端口80和8000的请求,如:
Listen 80
Listen 8000  //用于配置同时进行接收来自这两个端口,当然也可以设置更多个并排
限制指定IP访问:
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
IPV6的设置
Listen [2001:db8::a00:20ff:fea7:ccea]:80  //有些平台上,需要通过特殊的编译Apache提供支持

<VirtualHost> 用于实现虚拟主机

配置文件:  相关指令<IfDefine> Include TypesConfig
主配置文件为httpd.conf, 可以使用Include指令加载其他文件,还会默认读取一个包含MIME文件类型的文件,默认值是mime.types
配置文件的指令是不区分大小写,当时参数区分,使用#开头可以用于注释,类似Java的资源文件,可以使用httpd -t检查配置文件
LoadModule 指令: 用于加载模块
<IfModule module_name> 可以用于安全的处理模块加载后的行为
指令的作用域限制: <Directory><DirectoryMatch><Files><FilesMatch><Location><LocationMatch><VirtualHost>
.htaccess 文件用于在不同目录下使用Apache的配置

配置段:可以简单理解成xml中的一个节点:  分为两种,一种是每次请求都起作用,而另外一种则在启动和重新启动中起作用,如:<IfDefine>、<IfModule>、<IfVersion>

<IfDefine>容器中的指令只有在httpd命令行中设定了特定的参数后才有效。如:
在服务器用 httpd -DClosedForNow 方式启动时,所有的请求才会被重定向到另一个站点:
<IfDefine ClosedForNow>
Redirect / http://otherserver.example.com/
</IfDefine>

<IfModule> 在指定模块启用时,才起作用
<IfModule mod_mime_magic.c>
MimeMagicFile conf/magic
</IfModule>

<IfVersion>指令:其中的指令只有当正在执行的服务器版本与指定的版本要求相符时才有效
<IfVersion >= 2.1>
# 仅在版本高于 2.1.0 的时候才生效
</IfVersion>
上述的三种指令,都可以使用!取反义,用于更高级的配置

文件系统管理器:用于对实体存在文件读取的限制
<Directory>和<Files>指令与其相应的正则表达式版本(<DirectoryMatch>和<FilesMatch>)一起作用于文件系统的特定部分,目录与子目录

下例中,/var/web/dir1 及其所有子目录被允许进行目录索引
<Directory /var/web/dir1>
Options +Indexes
</Directory>
下例中的配置指令如果出现在配置文件的主服务器段,则会拒绝对位于任何目录下的private.html的访问。
<Files private.html>
Order allow,deny
Deny from all
</Files>

<Files>和<Directory>段的组合可以作用于文件系统中的特定文件
<Directory /var/web/dir1>
<Files private.html>
Order allow,deny
Deny from all
</Files>
</Directory>

网络空间管理器:用于对URL访问的限制
<Location>指令与其相应的正则表达式版本(<LocationMatch>)一起作用于网络空间的特定部分
例中的配置会拒绝对任何以"/private"开头的URL路径的访问
<Location /private>
Order Allow,Deny
Deny from all
</Location>

<Location>指令与文件系统无关,可以用于Apache内部之间的配置过滤,或者处理器连接
例演示了如何将特定的URL映射到Apache内部的处理器mod_status
<Location /server-status>
SetHandler server-status
</Location>

通配符和正则表达式
通配符的使用与正则中的类似:"*"匹配任何字符串,"?"匹配任何单个的字符,"[seq]"匹配seq序列中的任何字符,符号"/"不被任何通配符所匹配,当时正则能够提供更多功能

下例使用非正则表达式的通配符来改变所有用户目录的配置:
<Directory /home/*/public_html>
Options Indexes
</Directory>

下例使用正则表达式一次性拒绝对多种图形文件的访问:
<FilesMatch \.(?i:gif|jpe?g|png)$>
Order allow,deny
Deny from all
</FilesMatch>

代理: <Proxy>和<ProxyMatch>容器中的指令仅作用于通过mod_proxy代理服务器访问的、与指定URL匹配的站点。
下例中的配置会拒绝通过代理服务器访问cnn.com站点
<Proxy http://cnn.com/*>
Order allow,deny
Deny from all
</Proxy>

注意多个配置之间层叠导致的问题

从URL到文件系统的映射
Apache根据请求定位文件的默认操作是:取出URL路径(即URL中主机名和端口后面的部分)附加到由DocumentRoot指定的文件系统路径后面。
如果服务器有多个虚拟主机,则Apache会使用下述两种方法之一:使用每个虚拟主机自己的DocumentRoot来组成文件系统路径,或者使用由mod_vhost_alias提供的指令基于IP地址或
主机名动态地定位文件

内容协商: Apache支持HTTP/1.1规范中定义的内容协商,它可以根据浏览器提供的参数选择一个资源最合适的媒体类型、语言、字符集和编码的表现方式,主要理解成对不同有区域,内容的
Http头信息,或者url的特殊形式,使用内部的处理方式进行发送.

缓存处理:利用Apache的缓冲特性来加速web和代理(proxy)服务
主要为mod_cache、mod_disk_cache、mod_mem_cache、mod_file_cache和htcacheclean等模块的介绍

Apache的环境变量:专指对不同http请求,进行不同的配置处理的Apache内部环境配置

服务器全局配置: 对一些常用指令的分类:

服务器标识 :
ServerName
ServerAdmin
ServerSignature
ServerTokens
UseCanonicalName
UseCanonicalPhysicalPort

文件定位:
CoreDumpDirectory
DocumentRoot
ErrorLog
LockFile
PidFile
ScoreBoardFile
ServerRoot

限制资源的使用:
LimitRequestBody
LimitRequestFields
LimitRequestFieldsize
LimitRequestLine
RLimitCPU
RLimitMEM
RLimitNPROC
ThreadStackSize

其他一些用于控制权限的指令
Deny 指令 : 控制哪些主机被禁止访问服务器
Allow 指令:控制哪些主机能够访问服务器的该区域
上述两条指令:基于主机名、IP地址或者环境变量限制对服务器的访问

Order 指令:控制默认的访问状态与Allow和Deny指令生效的顺序 ,不同的顺序影响不同
Deny,Allow
Deny指令在Allow指令之前被评估。默认允许所有访问。任何不匹配Deny指令或者匹配Allow指令的客户都被允许访问。
Allow,Deny
Allow指令在Deny指令之前被评估。默认拒绝所有访问.任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问。
关键字只能用逗号分隔;它们之间不能有空格


















分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics