apache两种工作模式
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试题及答案-三套题
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优化配置
#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系统介绍根据著名的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程序设计习题答案
第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 工作模式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帮助文档
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 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。
apache
ApacheApache是世界使用排名第一的Web服务器软件。
它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web 服务器端软件之一。
同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。
也是一个基金会的名称、一种武装直升机等等。
阿帕奇族Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。
相传阿帕奇是一个武士,他英勇善战,且战无不胜,被印第安人奉为勇敢和胜利的代表,因此后人便用他的名字为印第安部落命名,而阿帕奇族在印第安史上也以强悍著称。
Apache基金会Apache软件基金会(也就是Apache Software Foundation,简称为A SF),是Apache基金会logo专门为运作一个开源软件项目的Apache 的团体提供支持的非盈利性组织,这个开源软件项目就是Apache 项目。
这个组织把自己作为有着相同目标的开发者与用户的团体,而不是简单的共享在一个服务器上的一组项目的组织团体。
在它所支持的Apache 项目与子项目中,所发行的软件产品都遵循Apache许可证(Apache License)。
Apache软件基金会(ASF)正式创建于1999年,它的创建者是一个自称为“Apache 组织”的群体。
这个“Apache 组织”在1999年以前就已经存在很长时间了,这个组织的开发爱好者们聚集在一起,在美国伊利诺斯大学超级计算机应用程序国家中心(National Center for Supercomputing Applic ations,简称为NCSA)开发的NCSA HTTPd 服务器的基础上开发与维护了一个叫Apache 的HTTP服务器。
最初NCSA HTTPd 服务器是由Rob McCool 开发出来的,但是它的最初开发者们逐渐对这个软件失去了兴趣,并转移到了其他地方,造成了没有人来对这个服务器软件提供更多的技术支持。
2021年科技面试题目及答案
enrich your life today,. yesterday is history.tomorrow is mystery.简单易用轻享办公(WORD文档/A4打印/可编辑/页眉可删)科技面试题目及答案一.填空题:1. 在Linux系统中,以文件方式访问设备。
2. Linux内核引导时,从文件/etc/fstab中读取要加载的文件系统。
3. Linux文件系统中每个文件用i节点来标识。
4. 全部磁盘块由四个部分组成,分别为引导块、专用块、i 节点表块和数据存储块。
5. 链接分为:硬链接和符号链接。
6. 超级块包含了i节点表和空闲块表等重要的文件系统信息。
7. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为:644,该文件属性是目录。
8. 前台起动的进程使用Ctrl+c终止。
9. 静态路由设定后,若网络拓扑结构发生变化,需由系统管-理-员修改路由的设置。
10. 网络管理的重要任务是:控制和监控。
11. 安装Linux系统对硬盘分区时,必须有两种分区类型:文件系统分区和交换分区。
13. 编写的Shell程序运行前必须赋予该脚__件执行权限。
14. 系统管理的任务之一是能够在分布式环境中实现对程序和数据的安全保护、备份、恢复和更新。
15. 系统交换分区是作为系统虚拟存储器的一块区域。
16. 内核分为进程管理系统、内存管理系统、I/O管理系统和文件管理系统等四个子系统。
17. 内核配置是系统管-理-员在改变系统配置硬件时要进行的重要操作。
18. 在安装Linux系统中,使用netconfig程序对网络进行配置,该安装程序会一步步提示用户输入主机名、域名、域名服务器、IP地址、网关地址和子网掩码等必要信息。
19. 唯一标识每一个用户的是用户ID和用户名。
20 .RIP协议是最为普遍的一种内部协议,一般称为动态路由信息协议。
21. 在Linux系统中所有内容都被表示为文件,组织文件的各种方法称为文件系统。
关于Apache的25个初中级面试题
关于Apache的25个初中级⾯试题Apache 求职⾯试提问 在这⼀节涵盖了25个有趣的Apache⼯作⾯试中会提出的问题,并附带有它们的答案,因此你可以⽅便的理解也许你之前从来没有见到过的⼀些有关于Apache的新事物. 在你开始阅读这篇⽂章之前,我们强烈建议你不要去死记硬背,万事⾸先都要尝试去放在实际场景中理解. 1. 什么是Apache web服务器? 答案 : Apache web 服务器 HTTP 是⼀个⾮常流⾏、功能强⼤并且开源,⽤于管理web站点并向⽹络提供web⽂件服务. 它基于 HTTP 超⽂本传输协议运⾏, 这⼀协议提供了服务器和客户端web浏览器通信的标准. 它⽀持 SSL, CGI ⽂件, 虚拟主机还有许多其它的功能特性. 2. 如果检查 Apache 及其版本? 答案 : ⾸先,使⽤rpm命令来检查Apache是否已经安装. 如果已经安装好了,那就使⽤httpd -v 命令来姜茶它的版本.[root@tecmint ~]# rpm -qa | grep httpdhttpd-devel-2.2.15-29.el6.centos.i686httpd-2.2.15-29.el6.centos.i686httpd-tools-2.2.15-29.el6.centos.i686[root@tecmint ~]# httpd -vServer version: Apache/2.2.15 (Unix)Server built: Aug 13 2013 17:27:11 3. Apache 以那个⽤户运⾏? 主配置⽂件的位置在哪⾥?. 答案 : Apache 以“nobody”⽤户和httpd守护进程运⾏. Apache 主要的配置⽂件在: /etc/httpd/conf/httpd.conf (CentOS/RHEL/Fedora) 还有/etc/apache2.conf (Ubuntu/Debian). 4. Apache 侦听 http 和 https 请求? 答案 : Apache 默认在80端⼝侦听http,在443端⼝侦听https(需要SSL整数). 你也可以使⽤来检查端⼝.[root@tecmint ~]# netstat -antp | grep httptcp 0 0 :::80 :::* LISTEN 1076/httpdtcp 0 0 :::443 :::* LISTEN 1076/httpd 5. 如何在你的Linux机器上安装Apache服务器? 答案 : 很简单, 你可以使⽤任何诸如(RHEL/CentOS/Fedora)上的yum以及(Debian/Ubuntu)上的apt-get来在你的Linux上安装Apache服务器.[root@tecmint ~]# yum install httpd[root@tecmint ~]# apt-get install apache2 6. 你可以在哪⾥找到Apache Web服务器的所有配置路径? 答案: Apache默认的配置路径放在: (RHEL/CentOS/Fedora) 中是在 /etc/httpd/ on ⽽(Debian/Ubuntu) 是在/etc/apache2下 .[root@tecmint ~]# cd /etc/httpd/[root@tecmint httpd]# ls -ltotal 8drwxr-xr-x. 2 root root 4096 Dec 24 21:44 confdrwxr-xr-x. 2 root root 4096 Dec 25 02:09 conf.dlrwxrwxrwx 1 root root 19 Oct 13 19:06 logs -> ../../var/log/httpdlrwxrwxrwx 1 root root 27 Oct 13 19:06 modules -> ../../usr/lib/httpd/moduleslrwxrwxrwx 1 root root 19 Oct 13 19:06 run -> ../../var/run/httpd[root@tecmint ~]# cd /etc/apache2[root@tecmint apache2]# ls -ltotal 84-rw-r--r-- 1 root root 7113 Jul 24 16:15 apache2.confdrwxr-xr-x 2 root root 4096 Dec 16 11:48 conf-availabledrwxr-xr-x 2 root root 4096 Dec 16 11:45 conf.ddrwxr-xr-x 2 root root 4096 Dec 16 11:48 conf-enabled-rw-r--r-- 1 root root 1782 Jul 21 02:14 envvars-rw-r--r-- 1 root root 31063 Jul 21 02:14 magicdrwxr-xr-x 2 root root 12288 Dec 16 11:48 mods-availabledrwxr-xr-x 2 root root 4096 Dec 16 11:48 mods-enabled-rw-r--r-- 1 root root 315 Jul 21 02:14 ports.confdrwxr-xr-x 2 root root 4096 Dec 16 11:48 sites-availabledrwxr-xr-x 2 root root 4096 Dec 6 00:04 sites-enabled 7. Apache 可以被TCP封装器固定吗? 答案 : 不可以,它不可以被TCP封装器固定下来,因为它不⽀持Linux的libwrap.a库. 8. 如何在Apache中改变默认的端⼝,以及如何侦听其中的指令⼯作? 答案 : 在httpd.conf⽂件中有⼀个指令“Listen”可以让我们改变默认的Apache端⼝. 在Listen 指令的帮助下我们可以在不同的端⼝还有不同的接⼝进⾏Apache侦听. 假设你拥有多个IP注册到了你的Linux机器,并且想要Apache在⼀个特殊的以太⽹端⼝或接⼝接收HTTP请求, 即使是这种要求也可以⽤Listen指令做到. 为了改变Apache的默认端⼝,请使⽤打开你的Apache主配置⽂件 httpd.conf 或者 apache2.conf .[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf[root@tecmint ~]# vi /etc/apache2/apache2.conf 查找”Listen”这个单词, 注释原来的那⼀⾏并且在那⼀⾏下⾯写上你⾃⼰的指令.# Listen 80Listen 8080ORListen 172.16.16.1:8080 保存⽂件并重启web服务器.[root@tecmint ~]# service httpd restart[root@tecmint ~]# service apache2 restart 9. 我们可以⼀台机器上放两个Apache Web服务器么? 答案 : 可以,我们在⼀台Linux机器上同时运⾏两个不同的Apache服务器, 但条件是它们应该在不同的端⼝上侦听,⽽我们可以使⽤Apache的Listen指令来改变端⼝. 10. 你知道Apache的DocumentRoot是啥意思么? 答案 : DocumentRoot 的 Apache 意思是服务器上web⽂件的存储位置, 默认的DocumentRoot是 /var/www/html 或者 /var/www. 这是可以被修改的,只要修改主机中的虚拟主机配置 “DocumentRoot”就⾏了. 11. 如何在不同的⽂件夹下⾯管理⽂件,还有什么是 Alias 指令? 答案 : 是的,这可以借助于主Apache配置⽂件中的Alias指令做到. Alias 指令可以对⽂件系统中的资源按图索骥, 它使⽤⼀个URL 路径,并且使⽤重定向到系统上的⼀个⽂件或⽬录来替换它. 使⽤Alias指令,它是Apache的 mod_alias 模块的⼀部分. Alias指令的默认语法是:Alias /images /var/data/images/ 上⾯的⽰例中, 放在/var/data/images 前缀前⾯的 /images url的意思是客户端请求“/images/sample-image.png”会让Apache从服务器上的/var/data/images/sample-image.png 取 “sample-image.png” ⽂件. 它也被称为URL 映射. 12. 对于“DirectoryIndex”你是怎么理解的? 答案 : DirectoryIndex 是当有⼀个来⾃主机的请求时Apache⾸先会去查找的⽂件. 例如: 客户端发送请求, Apache 对此将到站点的⽂件根⽬录查找index⽂件 (⾸先要展⽰的⽂件). DirectoryIndex 的默认设置是 .html index.html index.php, 如果不是这个名字, 你需要对 httpd.conf 或者 apache2.conf 中的 DirectoryIndex 值做出修改,以将其展⽰在你的客户端浏览器上.## DirectoryIndex: sets the file that Apache will serve if a directory# is requested.## The index.html.var file (a type-map) is used to deliver content-# negotiated documents. The MultiViews Option can be used for the# same purpose, but it is much slower.#DirectoryIndex index.html index.html.var index.cgi .exe 13. 当index⽂件丢失时如何使⽬录列表失效? 答案 : 如果站点根⽬录中的主index⽂件失效, 那么Apache将会在浏览器上列出所有内容类似的⽂件,以替换站点主页. 为了关闭Apache⽬录列表, 你可以在主配置⽂件中全局的设置,或者在.htaccess⽂件中部分的设置如下规则.<Directory /var/www/html>Options -Indexes</Directory> 14. Apache Web 服务器有些什么不同的⽇志⽂件? 答案 : Apache Web 服务器的默认⽇志⽂件是访问⽇志 “/var/log/httpd/access_log” 和错误⽇志:/var/log/httpd/error_log”. 15. 你是怎样理解错误⽇志中的“connection reset by peer”的? 答案 : 当服务器正在向请求提供服务时终端⽤户中断连接, 我们就会在错误⽇志中看到“connection reset by peer“. 16. 什么是Apache的虚拟主机? 答案 : 虚拟主机部分包含的信息包括站点名称,⽂档根路径,⽬录索引,服务器管理员邮箱,错误⽇志⽂件路径等等。
Apache的各种优化以及安全配置详解
Apache的各种优化以及安全配置详解简介:Apache所运⾏的硬件环境都是对性能影响最⼤的因素,即使不能对硬件进⾏升级,也最好给Apache⼀个单独的主机以免受到其他应⽤的⼲扰。
各个硬件指标中,对性能影响最⼤的是内存,对于静态内容(图⽚、JavaScript⽂件、css⽂件等)。
它决定了Apache可以缓存多少内容,它缓存的内容越多,在硬盘上读取内容的机会就会越少,⼤内存可以极⼤提⾼静态站点的速度;对动态⾼负载站点来说,每个请求保存的时间更多⼀些,Apache的mpm模块会为每个请求派⽣出相应的进程或线程分别处理,⽽进程或线程的数量与内存的消耗近似成正⽐,因此增⼤内存对提⾼动态站点的负载和运⾏速度也极为有利。
其次是硬盘的速度,静态站点尤为突出,Apache不断的在读取⽂件并发送给相应的请求,硬盘的读写是极其频繁的;动态站点也要不断的加载web程序(php等),⼀个请求甚⾄要读取⼗⼏个⽂件才能处理完成,因此尽可能的提⾼硬盘速度和质量对提⾼Apache的性能是有积极意义的。
最后CPU和⽹络,CPU影响的是web程序执⾏速度,⽹络影响流量⼤⼩。
⼀、Apache的⼏种⼯作模式以及调优Apache HTTP服务器被设计为⼀个强⼤的、灵活的能够在多种平台以及不同环境下⼯作的服务器。
这种模块化的设计就叫做“多进程处理模块”(Multi-Processing Module,MPM),也叫做⼯作模式。
1.Prefork(⼀个⾮线程型的):其主要⼯作⽅式是:当Apache服务器启动后,mpm_prefork模块会预先创建多个⼦进程(默认为5个),每个⼦进程只有⼀个线程,当接受到客户端的请求后,mpm_prefork模块再将请求转交给⼦进程处理,并且每个⼦进程同时只能⽤于处理单个请求。
如果当前的请求数将超过预先创建的⼦进程数时,mpm_prefork模块就会创建新的⼦进程来处理额外的请求。
这样客户端的请求就不需要在接受后等候⼦进程的产⽣。
中级网络工程师下午试题-20_真题-无答案
中级网络工程师下午试题-20(总分75,考试时间90分钟)试题一[说明]HFC(Hybird Fiber-coaxial Cable,混合光纤同轴电缆网)接入技术是以现有的有线电视网(CA TV)为基础,综合应用模拟和数字传输技术、射频技术和计算机技术所产生的一种宽带接入网技术。
下图所示的是HFC网络系统结构。
1. 图中(1)、(2)、(3)空缺名称分别应填______、______、______。
2. 图中①~③处空缺的传输介质名称分别是______、______、______。
3. 在HFC网络中从局端到用户端的数据传输过程中,语音信号、______和______送入合成器并形成混合信号,经光缆线路送到各小区的光纤节点,再经______将其传送到各用户综合服务单元。
4. 在本质上,HFC采用的技术是______。
A. 时分复用B. 码分复用C. 频分复用D. 波分复用5. Cable Modem主要由______、______、加/解密设备、网络接口卡和______组成,最高上行速率可达______。
试题二[说明]配置WWW服务器是Linux操作平台的重要工作之一,而Apache是目前应用最为广泛的Web服务器产品之一。
在Linux下安装Apache Web服务,Apache服务程序httpd启动时需要读取配置文件httpd.conf,以下是一个httpd.conf配置文件的片断:## httpd.conf -- Apache HTTP server configuration file### Section 1: Global EnvironmentServerType standaloneServerRoot "/etc/httpd"Timeout 300KeepAlive OnMaxKeepAliveRequests 100KeepAliveTimeout 15MaxClients 150### Section 2: "Main" server configurationPort 80User apacheGroup apacheServerAdmin ServerName .cnDocumentRoot "/var/www/html"UserDir public_htmlDirectoryIndex index.htmlAlias /jianji "/home/zhang/jianji"ScriptAlias/cgi-bin/ "/var/www/cgi-bin/"ErrorDocument 404 /missing.html### Section 3: Virtual HostsNameVirtualHost 192.168.10.101<VirtualHost 192.168.10.101>ServerAdmin DocumentRoot /www/htdocs/abcServerNsme ErrorLog logs/host.some_-error_logCustomLog logs/host.some_domain.cim-access_**mon</VirtualHost>1. Apache Web服务器有______和______两种运行方式,该服务器运行在______方式下。
运维1000道经典面试题
1 服务器的linux系统是什么版Red hat ,centos,suse,ubnutu,solaris2 linux你做过那些优化1,关闭不需要的服务2,关闭不用的tty1,关闭不需要的服务这个应该很容易理解的,凡是我不需要的服务,一概关闭,这样一个好处是减少内存和CPU时间的占用,另一个好处相对可以提高安全性那么哪些服务是肯定要保留的呢?在linux机器上通常有四项服务是必须保留的iptableslinux下强大的防火墙,只要机器需要连到网上,哪里离得开它networklinux机器的网络,如果不上网可以关闭,只要上网当然要打开它sshd这是openssh server,如果你的机器不是本地操作,而是托管到IDC机房,那么访问机器时需要通过这个sshd服务进行syslog这是linux系统的日志系统,必须要有,否则机器出现问题时会找不到原因除了这四项必需的服务之外,其他的服务需要保留哪些呢?这时就可以根据系统的用途而定,比如:数据库服务器,就需要启用mysqld(或oracle)web服务器,就需要启用apache2,关闭不需要的tty请编辑你的/etc/inittab找到如下一段:1:2345:respawn:/sbin/mingetty tty12:2345:respawn:/sbin/mingetty tty23:2345:respawn:/sbin/mingetty tty34:2345:respawn:/sbin/mingetty tty45:2345:respawn:/sbin/mingetty tty56:2345:respawn:/sbin/mingetty tty6这段命令使init为你打开了6个控制台,分别可以用alt+f1到alt+f6进行访问此6个控制台默认都驻留在内存中,事实上没有必要使用这么多的你用ps auxf这个命令可以看到,是六个进程哟root 3004 0.0 0.0 1892 412 tty1 Ss+ Jun29 0:00 /sbin/mingetty tty1root 3037 0.0 0.0 2492 412 tty2 Ss+ Jun29 0:00 /sbin/mingetty tty2root 3038 0.0 0.0 2308 412 tty3 Ss+ Jun29 0:00 /sbin/mingetty tty3root 3051 0.0 0.0 1812 412 tty4 Ss+ Jun29 0:00 /sbin/mingetty tty4root 3056 0.0 0.0 2116 412 tty5 Ss+ Jun29 0:00 /sbin/mingetty tty5root 3117 0.0 0.0 2396 412 tty6 Ss+ Jun29 0:00 /sbin/mingetty tty6如何关闭这些进程?通常我们保留前2个控制台就可以了,把后面4个用#注释掉就可以了然后无需重启机器,只需要执行init q 这个命令即可init qq作为参数的含义:重新执行/etc/inittab中的命令3,如何关闭ipv6?ipv6目前我们还不需要,但系统安装完成后它会作为模块常驻核心,没有必要,可以用这个步骤来关闭它:首先编辑网络配置文件:vi /etc/sysconfig/network修改NETWORKING_IPV6=yes为NETWORKING_IPV6=no 然后关闭其模块:vi /etc/modprobe.conf 在文件中添加以下两行alias net-pf-10 off alias ipv6 off 修改完成后需重启机器使之生效4,如何关闭atime? 一个linux文件默认有3个时间:atime:对此文件的访问时间ctime:此文件inode发生变化的时间mtime:此文件的修改时间如果有多个小文件时通常没有必要记录文件的访问时间,这样可以减少磁盘的io,比如web服务器的页面上有多个小图片如何进行设置呢?修改文件系统的配置文件:vi /etc/fstab 在包含大量小文件的分区中使用noatime,nodiratime两项例如:/dev/md5 /data/pics1 ext3 noatime,nodiratime 0 0 这样文件被访问时就不会再产生写磁盘的io5,一定要让你的服务器运行在level 3上做法:vi /etc/inittab id:3:initdefault: 让服务器运行X的都是傻瓜6,优化sshd X11Forwarding no UseDNS no 7,优化shell 修改命令history记录# vi /etc/profile 找到HISTSIZE=1000 改为HISTSIZE=50 然后source /etc/profile8,禁止Control-Alt-Delete键盘关闭命令在"/etc/inittab"文件中注释掉下面这行(使用#):ca::ctrlaltdel:/sbin/shutdown-t3-r now改为:#ca::ctrlaltdel:/sbin/shutdown-t3-r now为了使这项改动起作用,输入下面这个命令:[root@kapil/]#/sbin/init q 9 内存子系统的调优内存子系统的调优不是很容易,需要不停地监测来保证内存的改变不会对服务器的其他子系统造成负面影响。
运维面试题
一、有文件file11、请用shell查询file1 里面空行的所在行号awk ‘{if($0~/^$/)print NR}’ file1orgrep -n ^$ file1 | awk -F : '{print $1}'2、编写ShellScript查询file1 以abc 结尾的行grep abc$ file13、打印出file1 文件第1 到第3 行sed -n ’1,3p’ file1head -3 file14、分析apache日志,给出当日访问ip的降序列表。
一句话思路:分析ip就要提取ip,提取的办法除了awk,还有个东西叫cut。
cut -d " " -f1 /etc/httpd/log/access_log | sort | uniq -c | sort -nr知识点:cut命令,sort将汇总相同内容,uniq -c合并重复内容,并给出重复次数。
sort -nr 使用数字排序,默认是ascii,并且是降序,默认是升序。
awk '{sum[ip]++}END{for(var in sum)print ip sum[var]}'/etc/httpd/log/access_log | sort -k2 -nr知识点:awk数据,sort -k2 -nr 降序数字排序就不说了,-k参数指定使用哪个列进行排序。
默认是自然是第一列。
5 如何批量把若干文件从一个扩展名改为另一个扩展名?比如把后缀gz,改为答:1.for file in *.gz; do mv $file `basename $file .gz`.zip; done或(也适合ksh)for file in *.gz; do mv $file $.zip; donerename gz zip *.gz2.ls | grep gz | awk -F'.' '{print }'|xargs -i mv {}.gz {}.zip二、如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.2.1 Iptables -A PREROUTING -d 192.168.2.1 -p tcp -m tcp –dport 80 -j DNAT -to-destination 192.168.2.1:8080三、crontab在11 月份内,每天的早上6 点到12 点中,每隔2 小时执行一次/usr/bin/httpd.sh 怎么实现0 6-12/2 * 11 * /usr/bin/httpd.sh四、编写个shell 脚本将/usr/local/test 目录下大于100K 的文件转移到/tmp 目录下#!/bin/bashfor file in `ls /root`doif [ -f $file ]; thenif [ `ls -l $file|awk '{print $5}'` -gt 10000 ]; thenmv $file /tmp/fifidone五、简述raid0 raid1 raid5 三种工作模式的工作原理及特点。
软考网络工程师中级案例题考点整理
●Linux考点1./proc 伪文件系统,主要存放进行和系统信息。
2./etc/fstab 列出的Linux分区,系统启动时会自动加载3.Init进程启动时需要读取inittab配置文件,Inittab文件存放在/etc目录中4.NFS(网络文件系统)技术:主机作为NFS(网络文件系统)服务器,WEB服务器(www1和www2)作为它的客户,共享数据和服务脚本,保证WEB服务的数据同步或一致。
5.inetd/xinetd是Linux系统中一个重要服务,网络服务的守护进程是xinetd的功能。
6.inetd服务的默认配置文件为/etc/inetd.conf ,配置文件存放在/etc/xinetd.d/●DHCP(Linux)考点1.DHCP是BOOTP协议的一个扩展,便于客户自动从服务器获取IP地址和相关设置。
2.在Linux系统中使用dhcpd程序提供DHCP服务,配置文件/etc/dhcpd.conf●DNS (Linux)考点1.在Linux中,DNS是由BIND软件来实现的。
其中的resolver程序负责产生域名信息的查询,named守护进程,负责回答查询。
2.假定提供web服务的二台Linux服务器IP地址分别为192.168.1.10和192.168.1.20。
为了使用DNS循环机制,由主机名对外提供一致的服务,需要在DNS服务器的区域文件中增加下列内容:www1 IN A192.168.1.10www2 IN A192.168.1.20www IN CNAME www1www IN CNAME www2●Apache(Linux)配置Web服务器1.Web客户机与服务器共同遵守HTTP协议,其工作过程是:Web客户端程序根据输入的URL连接到相应的Web服务器上,并获得指定的Web文档。
动态网页以JSP程序的形式在服务器端处理,并给客户端返回HTML格式的文件。
2.Apache的主配置文件为httpd.conf,存储在Linux的/etc/httpd/conf目录下3.虚拟主机是指在同一台服务器上实现多个Web站点。
DevOps导论_南京大学中国大学mooc课后章节答案期末考试题库2023年
DevOps导论_南京大学中国大学mooc课后章节答案期末考试题库2023年1.以下对于微服务优点的描述中,哪一个是错误的?参考答案:微服务系统测试变得非常简单2.以下描述是否正确:多步构建允许在Dockerfile中使用多个FROM指令。
两个FROM指令之间的所有指令会生产一个中间镜像,最后一个FROM指令之后的指令将生成最终镜像。
中间镜像中的文件可以通过COPY --from=指令拷贝,其中image-number为镜像编号,0为第一个基础镜像。
没有被拷贝的文件都不会存在于最终生成的镜像,这样可以减小镜像大小,同时避免出现安全问题。
参考答案:正确3.单体架构更多地作为应用的部署架构,单体应用只运行在一个进程中。
参考答案:错误4.PSP鼓励使用瀑布型生命周期模型。
参考答案:错误5.除Spring Boot之外,主流的微服务开发框架还有什么?参考答案:Apache Dubbo6.Nagios不属于监控工具。
参考答案:错误7.本质上,微服务架构是SOA的一种扩展。
参考答案:正确8.关于评审,下述说法中不恰当是:参考答案:代码的个人评审最好交叉进行,因为阅读自己代码容易产生思维定式,不利于缺陷发现。
_代码的个人评审应该安排在单元测试之后,确保评审对象有着较高的质量,提升评审价值。
9.关于质量路径(Quality Journey),下列说法中哪些不恰当。
参考答案:质量路径与个体软件工程师无关,是团队层面的集体努力。
_质量路径中所列举的方法都是提升开发质量的有效手段,可以随意选择使用。
10.DevOps的哪些特点可以有效支撑当前社会对软件系统的期望?参考答案:虚拟机技术的大量应用_敏捷开发、精益思想以及看板方法,支持快速开发、交付、迭代和演化_微服务架构设计_工具链支持高效率的自动化11.Zabbix有两种工作模式。
参考答案:正确12.微服务架构架构风格是一种将一个单一应用程序开发为一个小型服务的方法。
flink的通俗理解
flink的通俗理解一、Flink是什么?Flink是一个开源的分布式流处理框架,它可以处理无限量的数据流,并且可以保证在非常短的时间内做出响应。
Flink最初由德国柏林工业大学的一群研究人员开发,目前已经成为Apache软件基金会下的顶级项目之一。
二、Flink有哪些特点?1.高效性:Flink采用了基于内存的计算模式,可以高效地处理海量数据。
同时,它还支持增量计算和迭代计算等多种计算模式。
2.容错性:Flink具有很强的容错能力,能够在节点故障或者网络异常等情况下保证计算结果的正确性。
3.灵活性:Flink支持多种数据源和数据格式,同时还提供了丰富的API和插件机制,方便用户进行二次开发和扩展。
4.可伸缩性:Flink可以轻松地扩展到数千个节点,并且能够自动地平衡负载和资源利用率。
三、Flink适用于哪些场景?1.实时数据分析:Flink支持实时流处理和批处理两种模式,在实时数据分析方面具有很强的优势。
2.复杂事件处理:Flink可以轻松地实现复杂事件处理,例如基于时间窗口的事件分析、流式机器学习等。
3.数据清洗和转换:Flink可以对数据进行清洗和转换,例如实时ETL、数据格式转换等。
4.流式计算和机器学习:Flink支持流式计算和机器学习,可以帮助用户实现实时推荐、异常检测等功能。
四、Flink的架构模型是什么?1.JobManager:JobManager是Flink中的主节点,负责协调整个集群的工作。
它会接收到用户提交的任务,并将任务分配给TaskManager执行。
2.TaskManager:TaskManager是Flink中的工作节点,负责具体的计算任务。
它会从JobManager接收到任务,并执行具体的计算逻辑。
3.DataStream API:DataStream API是Flink中用于处理无限量数据流的API。
它提供了丰富的操作符和函数库,方便用户进行各种数据处理操作。
pulsar和rabbitmq底层原理
pulsar和rabbitmq底层原理Pulsar 和RabbitMQ 是两种常用的消息中间件,它们在底层原理和设计理念上存在一些差异。
本文将分别介绍Pulsar 和RabbitMQ 的底层原理,并对它们的特点进行比较。
Pulsar 是由 Apache 开源基金会维护的分布式消息系统,其底层原理基于发布/订阅模式。
Pulsar 的架构设计采用了分层的方式,其中包括 Broker、BookKeeper 和 ZooKeeper。
Broker 负责接收和处理消息,BookKeeper 用于持久化数据,而ZooKeeper 则用于协调和管理集群的状态。
Pulsar 的核心概念是Topic,它可以看作是消息的分类,类似于RabbitMQ 中的 Exchange。
Pulsar 的 Topic 支持多个订阅者同时消费消息,而且可以灵活地进行扩展和动态添加订阅者。
这种设计使得 Pulsar 具有较好的可伸缩性和高吞吐量。
与之相比,RabbitMQ 是一个基于AMQP(Advanced Message Queuing Protocol)的消息中间件。
它的底层原理是消息队列模型,采用生产者-消费者的模式。
RabbitMQ 中的核心概念包括Exchange、Queue 和Binding。
Exchange 接收生产者发送的消息,并将其路由到一个或多个 Queue 中,而消费者则从 Queue 中获取消息进行消费。
RabbitMQ 的设计理念是将消息进行持久化存储,并通过ACK 机制保证消息的可靠性传递。
它还支持多种消息传递模式,如点对点、发布/订阅和工作队列模式等,使得RabbitMQ 具有较好的灵活性和可扩展性。
尽管Pulsar 和RabbitMQ 在底层原理和设计理念上存在差异,但它们都具有一些相似的特点。
首先,它们都支持消息的持久化存储,确保消息不会丢失。
其次,它们都提供了高可用性和故障恢复机制,以保证消息系统的稳定性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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可能无法启动,或系统将变得不稳定。