Apache介绍

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

1、Apache的安装目录结构

目录名称

         描    

Bin

是Apache执行文件所在的目录。例如,Apache的主要执行文件apachectl,使用这个命令可以用来控制Apache服务器开启或停止。还有Apache的密码保护文件htpasswd,当用户在某些网页需要输入账号与密码时,Apache本身提供一个最基本的密码保护方式,该密码的产生就是透过这个指令来完成的

cgi-bin

预设给一些可执行的CGI网页程序存放的目录,当用户输入http://localhost/cgi-bin/时所显示的数据所存储的目录

error

默认错误应答文件目录。如果因为服务器设置或者浏览器要求的数据错误时,在浏览器上出现的错误信息存放的位置

htdocs

默认Web文档根目录,就是用户存放网页和存放默认首页的位置。用户通过浏览器中输入地址访问这个下面的文件,并将文件内容传回给用户浏览器,显示成美妙的页面供给用户浏览

icons

这个目录提供Apache预设给予的一些小图示

Logs

Apache日志文件存放的位置。其中包括访问日志access_log和错误日志error_log文件。访问日志access_log记录了所有对Web服务器的访问活动,例如,记录了客户端的IP地址和在什么时间访问了哪个页面等信息。错误日志error_log记录了所有对Web服务器的错误访问活动

Man

Apache服务器配置文件的帮助手册所在目录

modules

Apache服务器所支持的动态加载模块所在的位置

2、配置文件

除了要了解Apache家目录下的子目录的作用,还有两个比较重要的目录需要掌握,就是存入Apache配置文件和子配置文件的两个目录,如下所示:
/etc/httpd/目录:在通过源代码包安装Apache时,为Apache指定的主配置文件httpd.conf存放的目录。
/etc/httpd/extra/目录:该目录为Apache扩展及模块配置文件目录。最新版本Apache服务器不仅有一个httpd.conf作为主配置文件,还存在一些辅助配置文件被存放在这个目录下。

p/etc/httpd/httpd.conf                //主配置文件
p/etc/httpd/extra/                         //显示/etc/httpd/extra/下面的所有附加配置文件
phttpd-autoindex.conf                       //配置目录列表的辅配置文件
phttpd-dav.conf                             //配置DAV的辅配置文件
phttpd-default.conf                           //配置与Apache服务自身相关的辅配置文件
phttpd-info.conf                              //配置用于服务器信息和状态显示的辅配置文件
phttpd-languages.conf                       //配置语言支持的辅配置文件
phttpd-manual.conf                           //配置提供Apache文档访问的辅配置文件
phttpd-mpm.conf                             //配置多路处理模块(MPM) 的辅配置文件
phttpd-multilang-errordoc.conf       //配置多语言错误应答的辅配置文件
phttpd-ssl.conf                               //配置SSL模块的辅配置文件
phttpd-userdir.conf                           //配置用户主目录的辅配置文件
phttpd-vhosts.conf                            //配置虚拟主机的辅配置文件 

 3、查看加载了哪些模块

apachectl -l 

 
  1. oracle@b2b_plat_13619:/home/oracle/tmp/install/bin>./apachectl -l 
  2. Compiled in modules: 
  3.   core.c 
  4.   mod_authn_file.c 
  5.   mod_authn_default.c 
  6.   mod_authz_host.c 
  7. ..................

 4、部分参数说明

(1)KeepAlive On 

放动态网页的就 KeepAlive Off 以提高吞吐量,放静态内容如图片、js代码等就 KeepAlive On 以减少TCP连接建立次数。

(2)工作模式
apache  有两种工作模式profork、worker。
profork是默认的apache工作模式,apache1.3种采用的就是profork模式,prefork是进程工作,使用单独的子进程来处理请求,是最稳定的MPM之一。
worker是一种进程加线程的工作模式,系统开销要小于prefork模式,但稳定性方面要差一些。
编译apache时可以选择工作模式
例:
如想使用worker模式,可以使用如下参数
./configure -with-mpm=worker  
MaxClients是这些指令中最为重要的一个,设定的是Apache可以同时处理的请求,是对Apache性能影响最大的参数。其缺省值150是远远不够的,如果请求总数已达到这个值(可通过ps -ef|grep http|wc -l来确认),那么后面的请求就要排队,直到某个已处理请求完毕。这就是系统资源还剩下很多而HTTP访问却很慢的主要原因。系统管理员可以根据硬件配置和负载情况来动态调整这个值。虽然理论上这个值越大,可以处理的请求就越多,但Apache默认的限制不能大于256。如果把这个值设为大于256,那么 Apache将无法起动。事实上,256对于负载稍重的站点也是不够的。在Apache 1.3中,这是个硬限制。如果要加大这个值,必须在“configure”前手工修改的源代码树下的src/include/httpd.h中查找 256,就会发现“#define HARD_SERVER_LIMIT 256”这行。把256改为要增大的值(如4000),然后重新编译Apache即可。在Apache 2.0中新加入了ServerLimit指令,使得无须重编译Apache就可以加大MaxClients。
ServerLimit的最大值是20000,对于大多数站点已经足够。如果一定要再加大这个数值,对位于源代码树下server/mpm/prefork/prefork.c中以下两行做相应修改即可:

#define DEFAULT_SERVER_LIMIT 256
#define MAX_SERVER_LIMIT 20000
注:ServerLimit的值是MaxClients值的最大限制值,即   MaxClients<=ServerLimit  

worker模式下所能同时处理的请求总数是由子进程总数乘以ThreadsPerChild值决定的,应该大于等于MaxClients。如果负载很大,现有的子进程数不能满足时,控制进程会派生新的子进程。默认最大的子进程总数是16,加大时也需要显式声明ServerLimit(最大值是 20000)。这两个值位于源码树server/mpm/worker/worker.c中的以下两行:
#define DEFAULT_SERVER_LIMIT 16
#define MAX_SERVER_LIMIT 20000

 

【注意】

1、在apache中设置循环写入log的方式:CustomLog /path combined

ErrorLog "|/usr/alibaba/cronolog/sbin/cronolog /home/qaadmin/work/deploy1.4.2_trunk/out/logs/error_log.%w"

LogLevel warn

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

CustomLog /home/qaadmin/work/deploy1.4.2_trunk/out/logs/access_log combined

 

 本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/403674,如需转载请自行联系原作者

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7天前
|
Java Apache PHP
Apache
Apache
19 5
|
Shell Apache 开发工具
|
前端开发 Shell Apache
|
Java Apache
|
消息中间件 Apache
|
Apache 数据安全/隐私保护 Python
|
Web App开发 PHP Apache