设为首页 收藏本站
查看: 1051|回复: 0

[经验分享] apache 模块——基本模块

[复制链接]

尚未签到

发表于 2018-11-28 10:04:02 | 显示全部楼层 |阅读模式
  默认情况下,基本模块建议加载。
mod_actions
  LoadModule actions_module modules/mod_actions.so
说明基于媒体类型或请求方法,为执行CGI脚本而提供
状态基本(B)
模块名actions_module
  

  此模块有两个指令。
Action 指令让你可以在对特定MIME类型文件(image/gif )请求的时候运行CGI脚本。
Script  指令让你能够在使用特定请求方法(GET,POST,PUT等)的时候运行CGI脚本。
  Action 指令例子
  # 所有对MIME类型"image/gif"的请求都将被指定的CGI脚本/cgi-bin/images.cgi进行处理
  ------------------------------------------
Action image/gif /cgi-bin/images.cgi
  ------------------------------------------
  # 与AddHandler 合用
  #所有对具有扩展名".xyz"的文件的请求都将被指定的CGI脚本/cgi-bin/program.cgi进行处理。
  -----------------------------------------------
  AddHandler my-file-type .xyz
Action my-file-type /cgi-bin/program.cgi
  --------------------------------------------------------
  语法 Action action-type cgi-script [virtual]
  作用域: server config, virtual host, directory, .htaccess。
  cgi-script是一个URL路径,指向一个已经被用ScriptAlias或AddHandler指令指定为CGI脚本的资源。
  可选的virtual修饰词关闭了对所请求的文件是否真实存在的检查。用在希望将Action使用于虚拟位置的时候
  Script  指令例子
  -----------------------------------------------
  # 风格的搜索
Script GET /cgi-bin/search
  # A CGI PUT 处理器
Script PUT /~bob/put.cgi
  -------------------------------------------------------------
  语法 Script method cgi-script
作用域 server config, virtual host, directory

  method名大小写敏感,因此 Script PUT 和 Script put 具有完全不同的结果。
  对应GET方法的脚本只有在提供了查询参数的时候才会被调用(例如:"foo.html?hi")。
  将PHP以CGI方式安装到APACHE要用到此模块
  --------------------------------------
  ScriptAlias /php/ "/usr/local/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"
  ---------------------------------------
  =================================================================
mod_alias
  LoadModule alias_module modules/mod_alias.so
  
说明提供从文件系统的不同部分到文档树的映射和URL重定向
状态基本(B)
模块名alias_module

  此模块提供以下指令:
  Alias 指令
AliasMatch 指令
Redirect 指令
RedirectMatch 指令
RedirectPermanent 指令
RedirectTemp 指令
ScriptAlias 指令
ScriptAliasMatch 指令
  Alias 指令例子:

  -------------------------------------------------
  
Alias /phpmyadmin/ "/ftp/phpMyAdmin/"

AllowOverride AuthConfig
Order allow,deny
Allow from all


  ---------------------------------------------------
  对"http://myserver/phpmyadmin/index.php"的请求,将返回"/ftp/phpMyAdmin/index.php"文件。仅匹配完整路径。对于使用正则表达式的匹配,参见AliasMatch指令。
  语法 Alias URL-path file-path|directory-path
作用域  server config, virtual host

  ScriptAlias 指令例子:
---------------------------------------------------------
  
        DocumentRoot /var/www
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        
    Alias /doc/ "/usr/share/doc/"
   
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
   
    Alias /pics "/exports/flv12"
   
        Options  Indexes
        AllowOverride AuthConfig FileInfo
        Order allow,deny
        Allow from all
   

  ---------------------------------------------------
  语法 ScriptAlias URL-path file-path|directory-path
作用域 server config, virtual host

  ScriptAlias指令的行为与Alias指令相同,但同时它又标明此目录中含有应该由cgi-script处理器处理的CGI脚本。
  =========================================================
mod_asis
  LoadModule asis_module modules/mod_asis.so
  
说明发送自己包含HTTP头内容的文件
状态基本(B)
模块名asis_module

  send-as-is: 直接发送,不增加 HTTP 头。任何带有".asis"扩展名的文件的内容会被Apache原样发往客户端。
  用法:
  在httpd.conf里启用
  -------------------------------
  AddHandler send-as-is asis
  -------------------------------------
  此语句将MIME-type httpd/send-as-is指定给文件扩展名.asis.
  用ASIS文件来重定向到另一个页面。
  在主机的目录中添加index.asis
  -----------------------------------------------------
  DirectoryIndex index.asis index.html index.htm
  --------------------------------------------------------
  index.asis 的内容:
  --------------------------------------------------
  Status: 301 Now where did I leave that URL
  Location: http://www.lowlife.org
Content-type: text/html
  

Moved to http://www.lowlife.org


This site has moved to http://www.lowlife.org


  ---------------------------------------------------------
  注意:
  1 "Status:"是必须的头;此数据应该是3位数字的HTTP应答码,跟随一段文字信息。
  2 服务器总会在送给客户端的资料里加上"Date:"和"Server:"头,所以这两个头不应该包含在这个文件里。
  3 服务器不会加上通常都会加上的"Last-Modified:"头。
  ===============================================================
mod_auth_basic
  LoadModule auth_basic_module modules/mod_auth_basic.so
  
说明使用基本认证
状态基本(B)
模块名auth_basic_module


  mod_auth_basic 提供以下指令:
  1 AuthBasicAuthoritative 指令  仅仅在将mod_auth_basic和未使用AuthBasicProvider进行配置的第三方模块联合使用的时候才需设置为off

  2 AuthBasicProvider 指令       设置了该区域的(基本)认证支持者(Provider)。默认的file支持者由mod_authn_file模块实现。
  此模块使用HTTP基本认证,在认证支持模块的帮助下查找用户名和密码,从而进行访问控制。通常至少需要和一个认证支持模块(如mod_authn_file)和一个授权支持模块(如mod_authz_user)一起使用。
  能够提供认证支持者(Provider)的模块如下:
  mod_authn_dbm,
  mod_authn_file,
  mod_authn_dbd,
  mod_authnz_ldap 。
  用户认证技术:
  当访问一些网站的某些资源时,浏览器弹出一个对话框,要求输入用户名和密码来获取对资源的访问权。
  mod_auth模块用存储在文本文件中的用户名、组名和密码来实现认证。
  例子:
  ---------------------------------------------------------------
  1 对/usr/local/apache/htdocs/members目录启用用户认证
<Directory /usr/local/apache/htdocs/members>
Options Indexes FollowSymLinks
allowoverride authconfig
order allow,deny
allow from all
</Directory>
  其中,allowoverride authconfig一行表示允许对/usr/local/apache/htdocs/members目录下的文件进行用户认证。
  2.在限制访问的目录/usr/local/apache/htdocs/members下建立一个文件.htaccess,其内容如下:
  ----------------------------------
  AuthName \"会员区\"
AuthType basic
  AuthBasicProvider file
AuthUserFile/usr/local/apache/members.txt
require valid-user
  --------------------------------------------
  文件.htaccess中常用的配置命令有以下几个:
1)AuthName命令:指定认证区域名称。区域名称是在提示要求认证的对话框中显示给用户的。
2)AuthType命令:指定认证类型。在HTTP1.0中,只有一种认证类型:basic。在HTTP1.1中有几种认证类型,如MD5。
  3)AuthUserFile命令:指定一个包含用户名和密码的文本文件,每行一对。
  4)AuthGroupFile命令:指定包含用户组清单和这些组的成员清单的文本文件。
  5)require命令:指定哪些用户或组才能被授权访问。如:
require user user1 user2 (只有用户user1和user2可以访问)
require group managers (只有组managers中成员可以访问)
require valid-user (在AuthUserFile指定的文件中任何用户都可以访问)
  
3.利用Apache附带的程序htpasswd,生成包含用户名和密码的文本文件:/usr/local/apache/members.txt,每行内容格式为“用户名:密码”。
#cd /usr/local/apache/bin
#htpasswd -bc ../members.txt user1 1234
#htpasswd -b ../members.txt user2 5678
  4. 允许组用户。需用3步骤添加单个用户
  #vi /usr/local/apache/.htgroup
  ---------------------------
asb_readers:user1 user2
-----------------------------
  修改.htaccess文件
  -----------------------
  AuthName \"会员区\"
AuthType basic
  AuthBasicProvider file
AuthUserFile  /usr/local/apache/members.txt
AuthGroupFile  /usr/local/apache/.htgroup
require group asb_reader
  --------------------------------------------
  文本文件members.txt含有两个用户:user1,口令为1234;user2,口令为5678。注意,不要将此文本文件存放在Web文档的目录树中,以免被用户下载。
  将用户密码保存在数据库中参照http://www.iyunv.net/article/18319.htm
  ================================================================
mod_authn_alias
mod_authn_anon
mod_authn_dbd
mod_authn_dbm
mod_authn_default
mod_authn_file
mod_authnz_ldap
  LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
  LoadModule authn_default_module modules/mod_authn_default.so
  LoadModule authn_file_module modules/mod_authn_file.so
  LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
  以上七个都是扩展模块,为mod_auth提供认证支持。
  mod_authn_alias   基于实际认证支持者创建扩展的认证支持者,并为它起一个别名以便于引用
  mod_authn_anon     提供匿名用户认证支持
  mod_authn_dbd     使用SQL数据库为认证提供支持
  mod_authn_dbm     使用DBM数据库为认证提供支持
mod_authn_default
  LoadModule authn_default_module modules/mod_authn_default.so
  
说明在未正确配置认证模块的情况下简单拒绝一切认证信息
状态基本(B)
模块名authn_default_module

  该模块是一个失败补救(fallback)模块,它在未正确配置认证模块(比如mod_auth_basic)的情况下默认不使用用户认证。
  mod_authn_default 提供以下指令:
  AuthDefaultAuthoritative 指令
  将AuthDefaultAuthoritative明确设置为 Off 将允许将认证操作交由更底层的(在modules.c文件中定义的)模块来处理。通常并不存在更底层的模块,因为mod_authn_default已经被定义为非常底层的模块了。因此最好将AuthDefaultAuthoritative保持其默认值(On)。
mod_authn_file
  LoadModule authn_file_module modules/mod_authn_file.so
  
说明使用纯文本文件为认证提供支持
状态基本(B)
模块名authn_file_module

  该模块为认证前端mod_auth_basic)使用纯文本文件进行用户认证提供支持。使用mod_auth_basic的时候,可以通过在AuthBasicProvider指令中使用file值调用该模块。
  mod_uathn_file 提供以下指令:
  AuthUserFile 指令    设定一个纯文本文件的名称,其中包含用于认证的用户名/密码的列表,文件的路径如果不是绝对路径(也就是说,如果不是以斜杠开始的),则是相对于ServerRoot的相对路径。
  ==================================================================
mod_authz_dbm
mod_authz_default
mod_authz_groupfile
mod_authz_host
mod_authz_owner
mod_authz_user
  LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
  以上6个模块为mod_auth提供授权支持。
mod_authz_default
  
说明在未正确配置授权支持模块的情况下简单拒绝一切授权请求
状态基本(B)
模块名authz_default_module

  该模块是失败补救(fallback)模块,它在未正确配置授权支持模块(比如mod_authz_user或mod_authz_groupfile)的情况下简单拒绝一切授权请求。
  mod_authz_default 提供以下指令:
  AuthzDefaultAuthoritative 指令
mod_authz_user
  
说明基于每个用户提供授权支持
状态基本(B)
模块名authz_user_module

  该模块可以允许或拒绝经过认证的用户访问受保护的区域。
  mod_authz_user提供以下指令:
  AuthzUserAuthoritative 指令
  mod_authz_user有两种授权方式(二选一):
  1 根据在Require user中列出的用户对访问进行控制,
  2 根据require valid-user指令简单允许所有成功通过认证的用户进行访问。
mod_authz_groupfile
  
说明使用纯文本文件为组提供授权支持
状态基本(B)
模块名authz_groupfile_module

  该模块可以根据经过认证的用户是否属于特定组来允许或拒绝访问受保护的区域。
  为mod_auth提供:AuthGroupFile 指令。
  AuthGroupFile 指令    指令设定一个文本文件的名称,这个纯文本文件包含用于执行用户认证的用户组列表。存放用户组列表文件的路径如果不是绝对路径,则是相对于ServerRoot的相对路径。
  AuthzGroupFileAuthoritative 指令
mod_authz_host
  
说明提供基于主机名、IP地址、请求特征的访问控制
状态基本(B)
模块名authz_host_module

  mod_authz_host提供的指令用在, , 段中,也用于.htaccess文件中控制对服务器特定部分的访问。
  提供:Allow 指令,Deny 指令 ,Order 指令。
  Order指令控制默认的访问状态与Allow和Deny指令生效的顺序。
  Deny,Allow
    Deny指令在Allow指令之前被评估。默认允许所有访问。任何不匹配Deny指令或者匹配Allow指令的客户都被允许访问。
Allow,Deny
    Allow指令在Deny指令之前被评估。默认拒绝所有访问。任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问。
  ===============================================================
mod_autoindex
  LoadModule autoindex_module modules/mod_autoindex.so
  
说明自动对目录中的内容生成列表,类似于"ls"或"dir"命令
状态基本(B)
模块名autoindex_module

  如果没有指定目录索引页(index.html,index,php等),自动生成目录列表。
  mod_autoindex提供以下指令:
  AddAlt               将指定文件名的图标替换为文本
AddAltByEncoding     和AddAlt一样,只是方法是通过指定MIME编码(MIME-encoding)
AddAltByType         和AddAlt一样,只是方法是通过指定MIME内容类型(MIME content-type)
AddDescription       给文件(夹)添加描述,如果描述有空格,使用双引号包裹起来
AddIcon              指定文件名添加图标
AddIconByEncoding    和AddIcon一样,只是通过MIME编码来区分文件
AddIconByType        和AddIcon一样,只是通过MIME内容类型来区分文件
DefaultIcon          没有通过AddIcon*指定的文件则使用此默认图标
HeaderName           可以在索引列表的前面插入一个文件的内容。如果以“/”开头,则是相对于DocumentRoot目录。
IndexHeadInsert      在列表页面的标签内插入html代码
IndexIgnore          使一些文件或文件扩展名不出现在目录列表中。
IndexOptions         开启高级索引
IndexOrderDefault    用于设定目录排序
IndexStyleSheet      输出页面的样式表
ReadmeName      在高级索引列表的最后插入一个文件
  具体例子参考:
  Apache定制mod_autoindex的心得
  apache mod_autoindex 详解
=============================================================
mod_cgi
  LoadModule cgi_module modules/mod_cgi.so
  
说明在非线程型MPM(prefork)上提供对CGI脚本执行的支持
状态基本(B)
模块名cgi_module

  任何具有MIME类型application/x-httpd-cgi或者被cgi-script处理器处理的文件都将被作为CGI脚本对待并由服务器运行,它的输出将被返回给客户端。可以通过两种途径使文件成为CGI脚本,一种是文件具有已由AddType指令定义的扩展名,另一种是文件位于ScriptAlias目录中。
  在UNIX下使用多线程型的MPM时,应该使用模块mod_cgid代替本模块。在用户层面,这两个模块本质上是相同的。
  mod_cgi提供以下指令:
  ScriptLog 指令        CGI脚本错误日志文件的位置
ScriptLogBuffer 指令  限制记入日志文件的PUT或者POST内容的大小,防止如果接收到很大内容时日志文件的尺寸增加得太快太大。默认地,最多纪录1024字节
ScriptLogLength 指令  可以用来给CGI日志文件的大小设置一个上限。默认10385760bytes
  ================================================================
mod_cgid
  
说明在线程型MPM(worker)上用一个外部CGI守护进程执行CGI脚本
状态基本(B)
模块名cgid_module

  只要编译时选择了多线程型的MPM支持,这个模块就会默认代替mod_cgi 。
  ==============================================================
mod_dir
  LoadModule dir_module modules/mod_dir.so
  
说明指定目录索引文件以及为目录提供"尾斜杠"重定向
状态基本(B)
模块名mod_dir.c

  因为对目录的请求需要以一个"/"结尾,所以当服务器接收到对 http://servername/foo/dirname 的请求时,若dirname是一个目录,则mod_dir将会将其重定向到 http://servername/foo/dirname/ 。
  mod_dir 提供以下指令:
  DirectoryIndex 指令 定义 目录索引页(index.php,index.html)
  DirectorySlash 指令    决定mod_dir是否通过在请求的URL结尾补上"/"使其重定向到其所指向的目录。
  ===============================================================
mod_env
  LoadModule env_module modules/mod_env.so
  
说明允许Apache修改或清除传送到CGI脚本和SSI页面的环境变量
状态基本(B)
模块名env_module

  本模块用于控制传送给CGI脚本和SSI页面的环境变量。所传送的环境变量可以来自调用httpd进程的shell ,或者来自在配置过程中所设定(set)或撤销(unset)的变量。
  mod_env提供以下指令:
  PassEnv 指令    从调用httpd进程所在的shell中,指定一个或者更多个环境变量,传送到CGI脚本和SSI页面。
SetEnv 指令     设置一个环境变量,该变量将会传送到CGI脚本和SSI页面。
UnsetEnv 指令   在传送到CGI脚本和SSI页面的环境中,删除一个或者多个环境变量。
  ===============================================================
mod_filter
  
说明 [td] [/td]根据上下文实际情况对输出过滤器进行动态配置
状态基本(B)
模块名filter_module

  提供以下指令:
  FilterChain 指令 设置过滤链
FilterDeclare 指令 声明一个智能过滤器
FilterProtocol 指令 正确处理HTTP协议的处理规则
FilterProvider 指令 注册一个内容过滤器
FilterTrace 指令 从mod_filter获得debug信息
  ================================================================
mod_include
  LoadModule include_module modules/mod_include.so
  
说明实现服务端包含文档(SSI)处理
状态基本(B)
模块名include_module

  mod_include提供以下指令:
  SSIEndTag 指令         SSI语句的结束符,默认为 "-->"
SSIStartTag 指令       SSI语句的开始符,默认为 "

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-640606-1-1.html 上篇帖子: Apache不能加载libphp5.so 下篇帖子: apache自动安装脚本--接上篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表