Apache2.2学习笔记(一)

来源:互联网 发布:淘宝排名靠前上架时间 编辑:程序博客网 时间:2024/05/16 12:22

以下内容转自Apache官文文档:http://httpd.apache.org/docs/。部分加上个人理解。

 

1. Apache处理器

"处理器"是当一个文件被调用时,Apache所执行操作的内部表现。文件一般都有基于其文件类型的隐含处理器。通常,文件都只是被服务器简单的提交,只有某些文件类型会被特别地"处理"。

 

处理器可以被编译进服务器也可以包含在模块中,还可以用Action指令增加。标准发行版中内建的处理器如下:

  • default-handler:使用default_handler()发送文件,这是处理静态内容的默认处理器。(core)
  • send-as-is:按原样带HTTP头发送文件。(mod_asis)
  • cgi-script:将文件视为CGI脚本。(mod_cgi)
  • imap-file:将文件作为映射表规则文件解析。(mod_imagemap)
  • server-info:获取服务器的配置信息。(mod_info)
  • server-status:获取服务器状态的报告。(mod_status)
  • type-map:将文件作为类型表文件解析以实现内容协商。(mod_negotiation)

例1:用CGI脚本修改静态的内容

以下指令,将使对带有html后缀的文件的请求,调用CGI脚本footer.pl

Action add-footer /cgi-bin/footer.pl
AddHandler add-footer .html

然后,由CGI脚本负责发送(由环境变量PATH_TRANSLATED指向的)原始请求文档,并按需要进行修改或增加。

 

例2:带HTTP头的文件

以下指令启用send-as-is处理器,它用于处理本身包含HTTP头的文件,这样,所有位于/web/htdocs/asis/目录中的文件,无论其后缀名是什么,都由send-as-is进行处理。

<Directory /web/htdocs/asis>
SetHandler send-as-is
</Directory>

 

这样就可以理解mod_python的工作原理了。对于python开发的网站,可以在特定的目录下,指定文件该如何被处理。

<Directory /some/file/system/directory>
AddHandler mod_python .py
PythonHandler mptest
PythonDebug On
</Directory>

然后可以创建一个mptest.py:
1 from mod_python import apache
2
3 def handler(req):
4 req.log_error('handler')
5 req.content_type = 'text/plain'
6 req.send_http_header()
7 req.write('mptest.py/n')
8 return apache.OK



原创粉丝点击