apache两种工作模式

合集下载

apache_配置多个ip网站站点

apache_配置多个ip网站站点
避免这些问题的小技巧
附录:进一步的提示
一个简单示例
<VirtualHost www.abc.dom>
ServerAdmin webgirl@abc.dom
DocumentRoot /www/abc
</VirtualHost> webgirl@abc.dom
DocumentRoot /www/abc
本文档的涵义一言以蔽之就是:不要让Apache在解析配置文件的时候用到DNS。 如果Apache在解析配置文件时用到了DNS,您的服务器就会发生可靠性的问题(也可能根本无法启动), 或者遭致拒绝(偷窃)服务攻击(包括用户可以从其他用户那里偷窃点击)。
一个简单示例
拒绝服务
"main server"地址
基于域名的虚拟主机相对比较简单,因为我们只需要配置DNS服务器将每个主机名映射(CNAMES)到正确的IP地址,然后配置Apache HTTP服务器,令其辨识不同的主机名就可以了。基于域名的服务器也可以缓解IP地址(IPV4)不足的问题。这种方式下,各个虚拟主机共享同一份Apache,因此有CGI程序运行时,安全性也不高。
</VirtualHost> webmaster@
DocumentRoot /www/docs/
ServerName
ErrorLog logs/-error_log
TransferLog logs/-access_log
用Apache设置虚拟主机服务通常可以采用两种方案:基于IP地址的虚拟主机和基于主机名字的虚拟主机,下面我们分别介绍一下它们的实现方法以及优缺点。以便大家在具体的应用中能够选择最合适的实现方法。

CISP试题及答案-三套题

CISP试题及答案-三套题

1。

人们对信息安全的认识从信息技术安全发展到信息安全保障,主要是由于:A.为了更好地完成组织机构的使命B.针对信息系统的攻击方式发生重大变化C。

风险控制技术得到革命性的发展D.除了保密性,信息的完整性和可用性也引起人们的关注2。

信息安全保障的最终目标是:A.掌握系统的风险,制定正确的策略B。

确保系统的保密性、完整性和可用性C.使系统的技术、管理、工程过程和人员等安全保障要素达到要求D。

保障信息系统实现组织机构的使命3.关于信息保障技术框架(IATF),下列哪种说法是错误的?A.IATF强调深度防御(Defense—in—Depth),关注本地计算环境、区域边界、网络和基础设施、支撑性基础设施等多个领域的安全保障;B。

IATF强调深度防御(Defense-in—Depth),即对信息系统采用多层防护,实现组织的业务安全运作C。

IATF强调从技术、管理和人等多个角度来保障信息系统的安全;D。

IATF强调的是以安全检测、漏洞监测和自适应填充“安全间隙”为循环来提高网络安全4.依据国家标准GB/T20274《信息系统安全保障评估框架》,信息系统安全目标(ISST)是从信息系统安全保障____的角度来描述的信息系统安全保障方案。

A。

建设者B.所有者C.评估者D。

制定者5。

以下关于信息系统安全保障是主观和客观的结合说法错误的是:A。

通过在技术、管理、工程和人员方面客观地评估安全保障措施,向信息系统的所有者提供其现有安全保障工作是否满足其安全保障目标的信心.B。

信息系统安全保障不仅涉及安全技术,还应综合考虑安全管理、安全工程和人员安全等,以全面保障信息系统安全C.是一种通过客观证据向信息系统所有者提供主观信心的活动D.是主观和客观综合评估的结果;6.信息系统保护轮廓(ISPP)定义了__。

A.某种类型信息系统的与实现无关的一组系统级安全保障要求B.某种类型信息系统的与实现相关的一组系统级安全保障要求C.某种类型信息系统的与实现无关的一组系统级安全保障目的D.某种类型信息系统的与实现相关的一组系统级安全保障目的7.以下对PPDR模型的解释错误的是:A.该模型提出以安全策略为核心,防护、检测和恢复组成一个完整的,B.该模型的一个重要贡献是加进了时间因素,而且对如何实现系统安全状态给出了操作的描述C.该模型提出的公式1:Pt〉Dt+Rt,代表防护时间大于检测时间加响应时间D.该模型提出的公式1:Pt=Dt+Rt,代表防护时间为0时,系统检测时间等于检测时间加响应时间8。

apache优化配置

apache优化配置
ServerLimit的最大值是20000,对于大多数站点已经足够。如果一定要再加大这个数值,对位于源代码树下server/mpm/prefork/prefork.c中以下两行做相应修改即可:
#define DEFAULT_SERVER_LIMIT 256
#define MAX_SERVER_LIMIT 20000
MaxRequestsPerChild 每个子进程处理的最大请求数
Timeout 10
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 15
<IfModule prefork.c>
StartServers 20
MinSpareServers 20
编译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。

APACHE系统介绍

APACHE系统介绍

APACHE系统介绍根据著名的WWW服务器调查公司所作的调查,世界上百分之五十以上的WWW服务器都在使用Apache,是世界排名第一的WEB服务器。

Apache的诞生极富有戏剧性。

当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。

就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。

Apache的主要特征是:. 可以运行上所有计算机平台;. 支持最新的HTTP 1.1协议;. 简单而强有力的基于文件的配置;. 支持通用网关接口CGI;. 支持虚拟主机;. 支持HTTP认证;. 集成Perl脚本编程语言;. 集成的代理服务器;. 具有可定制的服务器日志;. 支持服务器端包含命令(SSI). 支持安全Socket层(SSL). 用户会话过程的跟踪能力;. 支持FastCGI;. 支持Java Servlets。

安装Apache下面我们就开始漫漫征服Apache之旅,通过循序渐进的需求实例,一步步地学习使用Apache,从入门到精通。

系统需求运行Apache不需要太多的计算资源。

它在有6-10MB硬盘空间和8MB RAM的Linux系统上运行得很好。

然而,只运行Apache可能不是你想做的事情。

更可能的是,你想运行Apache来提供WWW服务、启动CGI进程以及充分利用所有WWW能够提供的令人惊奇的功能。

在这种情况下,你需要提供反映负载要求的额外的磁盘空间和内存空间。

也就是说,如果仅仅是启动WWW服务并不需要太多的系统资源,但是想要能为大量的客户提供服务就需要更多的系统资源。

获取软件你可以在中获得Apache的最新版。

而几乎所有的Linux发行版中均包含有Apache软件包,你也可以直接使用它。

需要注意的是,Apache软件包有两种:一种是源代码,下载后需要自己重新编译;另一种是可执行文件,下载后只需解压就可以使用。

PHP程序设计习题答案

PHP程序设计习题答案

第1章PHP开篇习题一、填空题1.Apache的httpd服务程序使用的是【80 】端口。

2.在进行软件开发时有两种基本架构,B/S架构和【C/S】架构。

3.URL的英文全称是【Uniform Resource Locator】,中文名称为【统一资源定位符】。

4.【HTTP】协议是计算机硬件与软件之间数据交换的格式。

5.【HTTP】表示传输数据所使用的协议,【WWW】表示要请求的服务器主机名。

二、判断题1.使用PHP写好的程序,在Linux和Windows平台上都可以运行。

(√)2.PHP可以支持MySQL数据库,但不支持其它的数据库。

(×)3.PHP有很多流行的MVC框架,这些框架可以使PHP的开发更加快捷。

(√)4.Zend Studio是PHP中常用的IDE(集成开发环境)。

(√)5.进行PHP程序开发时,可以借助软件和工具来提高效率。

(√)三、选择题1.下列选项中,不是URL地址中所包含的信息是(D )。

A.主机名B.端口号C.网络协议D.软件版本2.PHP是一种(A)的编程语言。

A.解释型B.编译型C. 两者都是D. 两者都不是3.PHP是个网站开发中非常流行的脚本语言,其流行的原因不包含(C )。

A.易学B.易用C.易调试D.易扩展4.PHP与Linux、Apache和MySQL一起共同组成了一个强大的Web应用程序平台,下列选项中为该平台简称的是(B )。

A. WAMPB. LAMPC. LNMPD. WNMP5.在下列选项中,哪些不属于PHP的突出特点(B )。

A开源免费 B.开发成本高C.跨平台性D.支持多种数据库四、简答题1.请简要说明PHP的突出特点是什么?1.开源免费2跨平台性3.面向对象4.支持多种数据库5.快捷性.第2章基本语法习题一、填空题1.任何一个程序文件的php代码的开始和结束都要使用【<?php 】和“?>”进行标记。

2.PHP中,多行注释以【/* 】开始,以【*/ 】结束。

httpd的3种MPM工作模式

httpd的3种MPM工作模式

httpd 的 3 种 MPM 工作模式MPM 是 Multi-Processing Modules,表示 Apache 中的多路处理模块,目前在 Linux 上的 Apache 2.2/2.4 中包括三种模式:prefork、worker 和 event 模式。

一 HTTPD 不同安装方式对比rpm 安装方式 httpd-2.2.15 默认运行 方式 影响运行 方式的因 素 安装了 3 种方式,以 prefork 默认 若编辑/etc/sysconfig/httpd 文 件 , 将 “ HTTPD=/usr/sbin/httpd.wor ker ” 注 释 取 消 , 则 再 重 启 将 以 worker 形式运行。

/usr/sbin/下有 3 个文件:httpd, httpd.event 和 httpd.worker. 以哪个文件运行就是那种模式。

因此可 以修改/etc/sysconfig/httpd 文 件或者修改 /usr/sbin/ 下的文件名 进行切换模式。

主 配 置 文 件 /etc/httpd/conf/httpd.conf 中 /etc/httpd/httpd.conf 文 件 里 LoadModule mpm_event_module modules/mod_mpm_event.so 源码编译安装 httpd-2.4.4 编译时可以选择编译哪种方式, 也可以 3 种全装。

默认是 event决定运行 方式的因 素mpm 参数/etc/httpd/extra/httpd-mpm. conf 文件中二 rpm 方式安装后的相关配置在一些发行版的 Apache 安装时, 可能不仅安装了 prefork 模式的 httpd, 也可能安装有 worker/event 模式的 httpd 供用户根据实际需要来选择。

比如 RHEL6.4 中的 httpd 安装包就是同时提供了 worker 和 event 模式的 httpd 程序,如下所示: # /usr/sbin/httpd.worker -l Compiled in modules: core.c worker.c http_core.c mod_so.c # /usr/sbin/httpd.event -l Compiled in modules: core.c event.c http_core.c mod_so.c 在 RHEL 系统中,可以很容易地配置 httpd 服务对 prefork、worker 和 event 等 3 种模式来进行选择。

LAJP帮助文档

LAJP帮助文档

My favorites▼|Sign inlajp ArrayLAJP(Linux Apache Java Php) -- PHP结合JAVA的开发技术Project Home Downloads Wiki Issues SourceSearchforLAJP_manualLAJP帮助文档Updated Jul 26, 2010 by diaoyifei@LAJP帮助文档LAJP是用来解决PHP和Java通讯的一项技术,在PHP中可以通过"正常"的PHP 函数来调用Java的一个方法,如同下面的一个例子:java(service):package c;public class MyClass{public static final int addMethod(int a, int b){return a + b;}}php(client):$ret = lajp_call("c.MyClass::addMethod", 10, 20);echo $ret; //30LAJP有两个核心能力:1.PHP优雅、高效地调用Java方法的能力2.PHP数据和Java数据合理、自动地转换的能力在LAJP的当前版本中,使用两种技术进行PHP和Java间的通信,我对它们分别命名为:消息队列模式和socket模式。

它们各自有优缺点,在使用中应根据程序所在环境特点加以选择:•消息队列以System V的消息队列作为PHP和Java间的通信媒介,优点是理论速度快,占用资源较小;缺点是只能使用在支持System V的系统中,可运用于大多数的Unix/Linux/BSD系统,但不能用于windows。

•socket以TCP/IP作为PHP和Java间的通信媒介,优点是基本无系统限制;缺点是理论速度慢,占用资源较大。

一、LAJP运行环境要求"消息队列模式"和"socket模式"对运行环境的要求是不同的,下面分别加以阐述:消息队列模式环境需要满足System V消息队列的运行:•系统目前常见的Unix/Linux系统都可满足php(Apache)、java的运行,其中大部分默认支持System V消息队列。

[好文]mod_php和mod_fastcgi和php-fpm的介绍,对比,和性能数据

[好文]mod_php和mod_fastcgi和php-fpm的介绍,对比,和性能数据

mod_php VS mod_fastcgi目录什么是MOD_PHP和MOD_FASTCGI (1)工作原理 (2)MOD_PHP (2)MOD_FASTCGI (3)MOD_FACTCGI的三种配置方式 (4)静态配置 (5)动态配置 (5)远程方式 (6)PHP-FPM (6)性能测试 (8)名称解释 (8)测试内容 (8)测试结果 (8)FASTCGI配置项对性能的影响。

(11)分析&结论 (13)附录 (14)APACHE+MOD_FASTCGI+PHP搭建 (14)什么是mod_php和mod_fastcgi在lamp体系中,对于apache端php的配置,我们最常用的就是mod_php, 它把PHP做为APACHE一个内置模块。

让apache http服务器本身能够支持PHP语言,不需要每一个请求就启动PHP解释器来解释PHP。

和把webserver与php绑定起来的方式不同,fastcgi是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,相当于一个程序接口。

它可以接受来自web服务器的请求,解释输入信息,将处理后的结果返回给服务器(apache,lighty等)。

mod_fastcgi就是在apache下支持fastcgi协议的模块。

工作原理在介绍这两种模式的工作原理前,我们先了解一下php的架构图1 php架构图上面是php的架构图,从图上可以看到, SAPI提供了一个和外部通信的接口,使得PHP可以和其他应用进行交互数据。

php默认提供了很多种SAPI,常见的给apache的mod_php5,CGI,给IIS的ISAPI,还有Shell的CLI。

对于一个基于apache的php应用,其运行流程可以简单归结如下apache -> httpd -> mod_phpfastcgi -> sapi -> php我们下面提到的两种工作方式就分别用到了mod_php5和cgi的sapi。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[url=/web/host.php][/url]刚接触这两个配置时很迷糊,全部开启或全部注释没有几多变化。

今天搜索到这么一篇讲得还不错的文章,看了几篇,还是不能完全记住,做一个收藏。

空闲子进程:是指没有正在处理请求的子进程。

1、prefork.c模块(一个非线程型的、预派生的MPM)prefork MPM 使用多个子进程,每个子进程只有一个线程。

每个进程在某个确定的时间只能维持一个连接。

在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。

prefork的无线程设计在某些情况下将比worker更有优势:他能够使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,他也更容易调试一些。

ServerLimit 20000StartServers 5MinSpareServers 5MaxSpareServers 10MaxClients 1000MaxRequestsPerChild 0ServerLimit 2000//默认的MaxClient最大是256个线程,假如想配置更大的值,就的加上ServerLimit这个参数。

20000是ServerLimit这个参数的最大值。

假如需要更大,则必须编译apache,此前都是无需重新编译Apache。

生效前提:必须放在其他指令的前面StartServers 5//指定服务器启动时建立的子进程数量,prefork默认为5。

MinSpareServers 5//指定空闲子进程的最小数量,默认为5。

假如当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。

此参数不要设的太大。

MaxSpareServers 10//配置空闲子进程的最大数量,默认为10。

假如当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。

此参数不要设的太大。

假如您将该指令的值配置为比MinSpareServers小,Apache将会自动将其修改成"MinSpareServers+1"。

MaxClients 256//限定同一时间客户端最大接入请求的数量(单个进程并发线程数),默认为256。

任何超过MaxClients限制的请求都将进入等候队列,一旦一个链接被释放,队列中的请求将得到服务。

要增大这个值,您必须同时增大ServerLimit 。

MaxRequestsPerChild 10000//每个子进程在其生存期内允许伺服的最大请求数量,默认为10000.到达MaxRequestsPerChild的限制后,子进程将会结束。

假如MaxRequestsPerChild为"0",子进程将永远不会结束。

将MaxRequestsPerChild配置成非零值有两个好处:1.能够防止(偶然的)内存泄漏无限进行,从而耗尽内存。

2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

工作方式:一个单独的控制进程(父进程)负责产生子进程,这些子进程用于监听请求并作出应答。

Apache总是试图保持一些备用的(spare)或是空闲的子进程用于迎接即将到来的请求。

这样客户端就无需在得到服务前等候子进程的产生。

在Unix系统中,父进程通常以root 身份运行以便邦定80端口,而Apache产生的子进程通常以一个低特权的用户运行。

User 和Group指令用于配置子进程的低特权用户。

运行子进程的用户必须要对他所服务的内容有读取的权限,但是对服务内容之外的其他资源必须拥有尽可能少的权限。

2、worker.c模块(支持混合的多线程多进程的多路处理模块)worker MPM 使用多个子进程,每个子进程有多个线程。

每个线程在某个确定的时间只能维持一个连接。

通常来说,在一个高流量的HTTP服务器上,Worker MPM是个比较好的选择,因为Worker MPM的内存使用比Prefork MPM要低得多。

但worker MPM也由不完善的地方,假如一个线程崩溃,整个进程就会连同其任何线程一起"死掉".由于线程共享内存空间,所以一个程式在运行时必须被系统识别为"每个线程都是安全的"。

ServerLimit 50ThreadLimit 200StartServers 5MaxClients 5000MinSpareThreads 25MaxSpareThreads 500ThreadsPerChild 100MaxRequestsPerChild 0ServerLimit 16//服务器允许配置的进程数上限。

这个指令和ThreadLimit结合使用配置了MaxClients 最大允许配置的数值。

任何在重启期间对这个指令的改变都将被忽略,但对MaxClients的修改却会生效。

ThreadLimit 64//每个子进程可配置的线程数上限。

这个指令配置了每个子进程可配置的线程数ThreadsPerChild上限。

任何在重启期间对这个指令的改变都将被忽略,但对ThreadsPerChild的修改却会生效。

默认值是"64".StartServers 3//服务器启动时建立的子进程数,默认值是"3"。

MinSpareThreads 75//最小空闲线程数,默认值是"75"。

这个MPM将基于整个服务器监控空闲线程数。

假如服务器中总的空闲线程数太少,子进程将产生新的空闲线程。

MaxSpareThreads 250//配置最大空闲线程数。

默认值是"250"。

这个MPM将基于整个服务器监控空闲线程数。

假如服务器中总的空闲线程数太多,子进程将杀死多余的空闲线程。

MaxSpareThreads 的取值范围是有限制的。

Apache将按照如下限制自动修正您配置的值:worker需要其大于等于MinSpareThreads加上ThreadsPerChild的和MaxClients 400//允许同时伺服的最大接入请求数量(最大线程数量)。

任何超过MaxClients限制的请求都将进入等候队列。

默认值是"400",16 (ServerLimit)乘以25(ThreadsPerChild)的结果。

因此要增加MaxClients的时候,您必须同时增加ServerLimit的值。

ThreadsPerChild 25//每个子进程建立的常驻的执行线程数。

默认值是25。

子进程在启动时建立这些线程后就不再建立新的线程了。

MaxRequestsPerChild 0//配置每个子进程在其生存期内允许伺服的最大请求数量。

到达MaxRequestsPerChild 的限制后,子进程将会结束。

假如MaxRequestsPerChild为"0",子进程将永远不会结束。

将MaxRequestsPerChild配置成非零值有两个好处:1.能够防止(偶然的)内存泄漏无限进行,从而耗尽内存。

2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。

注意对于KeepAlive链接,只有第一个请求会被计数。

事实上,他改变了每个子进程限制最大链接数量的行为。

工作方式:每个进程能够拥有的线程数量是固定的。

服务器会根据负载情况增加或减少进程数量。

一个单独的控制进程(父进程)负责子进程的建立。

每个子进程能够建立ThreadsPerChild数量的服务线程和一个监听线程,该监听线程监听接入请求并将其传递给服务线程处理和应答。

Apache总是试图维持一个备用(spare)或是空闲的服务线程池。

这样,客户端无须等待新线程或新进程的建立即可得到处理。

在Unix中,为了能够绑定80端口,父进程一般都是以root身份启动,随后,Apache以较低权限的用户建立子进程和线程。

User和Group指令用于配置Apache子进程的权限。

虽然子进程必须对其提供的内容拥有读权限,但应该尽可能给予他较少的特权。

另外,除非使用了suexec ,否则,这些指令配置的权限将被CGI脚本所继承。

公式:ThreadLimit >= ThreadsPerChildMaxClients = MinSpareThreads+ThreadsPerChild硬限制:ServerLimi和ThreadLimit这两个指令决定了活动子进程数量和每个子进程中线程数量的硬限制。

要想改变这个硬限制必须完全停止服务器然后再启动服务器(直接重启是不行的)。

Apache在编译ServerLimit时内部有一个硬性的限制,您不能超越这个限制。

prefork MPM最大为"ServerLimit 200000"其他MPM(包括work MPM)最大为"ServerLimit 20000Apache在编译ThreadLimit时内部有一个硬性的限制,您不能超越这个限制。

mpm_winnt是"ThreadLimit 15000"其他MPM(包括work prefork)为"ThreadLimit 20000注意使用ServerLimit和ThreadLimit时要特别当心。

假如将ServerLimit和ThreadLimit 配置成一个高出实际需要许多的值,将会有过多的共享内存被分配。

当配置成超过系统的处理能力,Apache可能无法启动,或系统将变得不稳定。

相关文档
最新文档