首页 > 其他 > 详细

第二章之httpd配置文件详解

时间:2014-03-19 09:34:00      阅读:508      评论:0      收藏:0      [点我收藏+]

站点:httpd.apache.org

1)web请求的基本过程

    建立连接

    接受请求

    处理请求

    获取资源

    构建响应

    发送响应

    记录日志

2)web服务器输入输出结构

    单线程I/O模型

    多线程I/O结构模型

    复用的I/O结构:单个线程响应多个请求

    复用多线程的I/O结构:多个线程,每个线程响应多个请求

3)http:模块化

    core+modules:模块化设计

    DSO:dynamic shared object动态装载模块

    MPM:multipath processin module多道处理模块,非一个模块,而是对一种特性的称谓。

4)常用的工作模式:

    prefork模式使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:它可以使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,它也更容易调试一些。

    worker模式使用多个子进程,每个子进程有多个线程。每个线程在某个确定的时间只能维持一个连接。通常来说,在一个高流量的HTTP服务器上,Worker MPM是个比较好的选择,因为Worker MPM的内存使用比Prefork MPM要低得多。但worker MPM也由不完善的地方,如果一个线程崩溃,整个进程就会连同其所有线程一起"死掉".由于线程共享内存空间,所以一个程序在运行时必须被系统识别为"每个线程都是安全的"

    event:一个线程响应多个请求。

5)httpd配置文件参数详解。

1,监听套接字。

    Listen [ip:]port

默认80

可以出现多次,用于指定监听多个不同的套接字。

例如:

    Listen 80

Listen 192.168.1.1:8080

grep "Section" /etc/httpd/conf/httpd.conf 
### Section 1: Global Environment  全局配置
### Section 2: ‘Main‘ server configuration  主服务器
### Section 3: Virtual Hosts 虚拟主机

keepalived off关闭了持久连接

on开启后相关联的是超时和限制最大请求连接数。

2)配置使用keep alive

keepAlived{on|off}

keepalivedtimeout 2超时时间

maxkeepaliverequests 50最大请求连接数。

3)MPM

httpd -l查看默认模块。

vim /etc/sysconifg/httpd

HTTPD=/usr/sbin/httpd.worker直接改配置文件。重启即可更换工作模式。

<IfModule prefork.c>判断模块是否存在。httpd -l查看模块

StartServers       8默认启动的工作进程数
MinSpareServers    5最少空闲进程数
MaxSpareServers   20最大空闲进程数
ServerLimit      256最大活动进程数
MaxClients       256最大并发连接数
MaxRequestsPerChild  4000每个子进程在生命周期内所能够服务的最多请求个数;每个子进程最大所允许服务的请求个数。

</IfModule>   

<IfModule worker.c>
StartServers         4启动的子进程的个数
MaxClients         300并发请求的最大数
MinSpareThreads     25最小空闲线程数
MaxSpareThreads     75最大空闲线程数
ThreadsPerChild     25每个子进程最多生成的线程数
MaxRequestsPerChild  0每个子进程在生命周期内所能服务的最多请求个数,0表示不限定。
</IfModule> 

4)DSO模块的加载方式。

LoadModule module_name /path/to/module

httpd -M列出已装载的所有dso模块

httpd -l:列出支持使用的非dso模块

取消模块也是在配置文件中,把加载的模块用#号取消。

5)配置站点根目录

DocumentROot /path/to/somewhere默认是var/www/html

6)配置页面访问属性

<Directory "/path/to/somewhere">

Options:

    Indexes:缺少指定默认页面时,允许将目录中的所有文件以列表形式返回给用户。

    FollowSymlinks:允许跟随符号链接所指向的原始文件。

    None:所有选项都不启用

    All:所有都启用

    ExecCGI:允许使用mod_cgi模块执行cgi脚本。

    Includes:允许使用mod_include模块实现服务器的包含(杀死);

    Multviews:允许使用mod_negotiation实现内容协商。

SymlinksIfownermatch:在连接文件属主属组与原始文件的属主属组相同时,允许跟随符号链接所指向的原始文件。

</Directory>

7)基于主机的访问控制。

 <Directory "/path/to/somewhere">

    options

    Allowoverride None

order Allow,deny没有允许的都拒绝,order deny allow没有拒绝的都允许。

    allow

    deny

<directory>

order allow,deny表示允许所有人

allow from all         

二者都匹配或二者都无法匹配项时,则以后者为准,否则,则以匹配到的为准。

最佳匹配:从列表中找到最小的能匹配到访问者的地址的条目为最终生效的。

8)定义默认主页面

directoryIndex index.php index.html 一次寻找。

9)用户目录

用户创建个人站点。http://server_ip/~username/

Userdir disable表示禁止

userdir public_html

 public_html是用户目录下的目录名称,所有位于此目录中的文件均可通过前述的访问路径进行访问。 用户的家目录得赋予运行httpd进程的用户拥有执行权限;
UserDir disable这个禁用掉。
在配置文件中开启UserDir public_html就能使用用户的家目录了。
useradd hadoop
su - hadoop
mkdir /home/public_html 
vim /home/public_html/创建网页
setfacl -m u:apache:x /home/hadoop

10)配置日志功能。

 

/var/log/httpd/
 access.log:访问日志,其需要记录的内容需要自定义。
 error.log:错误日志
 访问日志:
  CustomLog ”/path/to/access_log_file" LogFormat_Name
  LogFormat 

httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats 日志访问链接

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent} 
%h:客户端地址
%l:远程登录名,通常为-
%u:认证时的远程用户名,没有认证时为-
%t:收到请求的时间。
%r:请求报文的起始行。
%>s:响应状态码。
%b:响应报文的长度,单位为字节数。
%{HEader_Name}i:记录指定请求报文首部的内容(value)
%U:表示请求的Url。
错误日志:
 ErrorLog

11)路径别名

Alias /images/ "/data/imgs"    定义别名。
访问images的内容来自imgs

Alias /alias/ "/path/to/somewhere"
意味着访问http://Server_IP/alias/时,其页面文件来自于/path/to/somewhere这个位置
12)设定默认字符集。
AddDefaultCharset UTF-8有时需要改变字符集。

13)CGI脚本路径别名
 URL --》FileSystem Directory

CGI:通用网关接口,一种协议。Common Gateway Interface。
CGI:web和某个环境下的应用程序进行通信,从通信环境中获取结果。
mod_alias实现别名的
mod_cgi:实现cgi解析的。
Content-Type:text/html
SUID,SGID。
ScriptAlias /URL/ "/path/to/somewhere/"

#/bin/bash
cat <<EOF
content-Type: text/html
<pre>
<h1>The hostname is: `hostname`.</h1>
The time is: `date`.
</pre>
EOF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文出自 “落叶飘远方” 博客,请务必保留此出处http://shunzi.blog.51cto.com/8289655/1379369

第二章之httpd配置文件详解,布布扣,bubuko.com

第二章之httpd配置文件详解

原文:http://shunzi.blog.51cto.com/8289655/1379369

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!