配置文件组成:
整个配置文件由3段组成:

(1)全局配置:对主服务器或虚拟机都有效,且有些功能是服务器自身工作属性;

(2)主服务器:主站属性;

(3)虚拟主机:虚拟主机及属性定义

注:第二段和第三段(即主机和虚拟主机)不能同时使用;

 

全局配置

一、配置监听的地址和端口

Listen  [IP:]PORT    //Listen可重复使用多次
默认监听80端口,不加ip,默认监听服务器上的多个ip地址上的80端口,你可以配置多个网卡,在不同的网卡上配置不同的IP,不管从哪个ip访问都能被监听 Listen 192.168.1.22:80:只监听这个ip地址的80端口

  

二、DSO与MPM

Apache DSO

apache是一个模块化设计的服务,核心只包含主要功能,扩展功能通过模块实现。
不同的模块的功能和特性都是独立分开的,这样扩展性更好,模块之间依赖性小,利于维护升级和扩展。
不同模块可以被静态的编译进程序,也可以动态加载。
模块的动态加载通过DSO(Dysnamic Shared Object)实现。

httpd -l :用于查看核心模块(静态编译入程序的模块)

httpd -M:用于查看当前apache安装的模块

MPM(Multi Process Modules)

意为多路处理模块,也就是我们所说的apache的工作模式。

MPM负责实现网络监听,请求的处理等功能、MPM有很多种,目的是为了在不同平台下实现最优化的性能及稳定性。

共有3种工作模式

prefork:一个主进程产生多个子进程,一个子进程响应一个请求;
worker:一个进程生成多个线程,一个线程响应一个请求;
event:基于事件驱动;

  

不同系统下可以使用的MPM:

说明

event在apache2.4版本之前是以测试状态提供,网上并没有太多的资料,在更新至2.4版本之后正式上线。

先来说prefork:当httpd启动起来之后,会生成一个主进程,它负责监听用户的请求,一旦请求进来后,它不负责自己响应,而是让其生成的子进程来响应,而主进程继续监听请求。
prefork是非线程,预生成进程型MPM、prefork会预先启动一些子进程,每个子进程一个时间点只能处理一个请求,并且会根据并发请求数量动态生成更多子进程。
通过子进程对外提供服务,处理请求,但是每个子进程在同时间内只能处理一个任务,这个可以在配置文件中设置。
如果有更多的请求,会自动生成更多的子进程来处理。 worker是线程化,多进程的MPM,每个进程可以生成多个线程,每个线程处理一个请求。
优点:节省资源,每多一个子进程就会多占用系统资源,使用线程处理请求。 apache默认prefork:现在的计算机系统资源还是比较够用的,使用prefork效率更高,但是如果要修改为 worker,则要重新静态编译模块。 需要考虑的是:刚启动服务的时候需要创建几个空闲进程,太多不好太少也不好。最少保证有几个空闲进程来响应请求进来,这是必须的。 最多设定多少个空闲进程,多余的空闲进程需要回收回来。
所以其有如下几个关键作用:
()启动服务时绑定特权端口:Linux系统中,只有管理员有权限使用小于1024的特权端口;但运行一些公共可用的服务,一定不能以管理员身份运行
()派发或回收子进程
()读取分析主配置文件
()监听每个用户请求并且派发子进程

配置prefork模型

apache服务默认就是以Prefork模式启动,无须更改启动模式。

参数说明:

<IfModule prefork.c>            #如果存在这个模块,那么提供以下属性
StartServers 8 #刚启动web服务时启动几个空闲子进程
MinSpareServers 5 #最少空闲进程数
MaxSpareServers 20 #最大空闲进程数
ServerLimit 256 #限定最多允许并发进来的活动用户连接个数
MaxClients 256 #服务器所允许同时所连接进来的链接数,一般来说与上面保持一致,或者大于上面的数。
MaxRequestsPerChild 4000 #一个服务器进程最多可以处理多少个进程,一旦超出请求后无论如何将进程结束并新启动新进程
</IfModule> #最后以IfModule结尾

注意:为什么不能一直用子进程处理去处理请求?
为什么不能一直用这个子进程处理请求?
.担心子进程有内存泄漏,长期工作下会出现bug等问题,持续工作会一直吃系统资源
.子进程假死状态,不能正常处理请求
为了保险起见,为了让apache更稳定,更安全的运行

配置worker模型

更改apache当前工作模式为worker模式

编辑文件/etc/sysconfig/httpd,将以下参数的注释信息去掉:

HTTPD=/usr/sbin/httpd.worker
更改模式后必须重新启动服务 [root@Centos ~]# service httpd restart
启动完毕后,查看其进程状态: [root@Centos ~]# ps -ef | grep http
root : ? :: /usr/sbin/httpd.worker #以root用户身份生成的父进程(用于派发工作进程)
apache : ? :: /usr/sbin/httpd.worker #以apache用户身份运行的工作进程(该工作进程派发线程)
apache : ? :: /usr/sbin/httpd.worker
apache : ? :: /usr/sbin/httpd.worker
apache : ? :: /usr/sbin/httpd.worker

参数说明:

<IfModuleworker.c>
StartServers 4 #配置启动多少个用于监听的服务,注意:这里并不是服务器进程,而是线程
MaxClients 300 #最大支持的用户连接数
MinSpareThreads 25 #最小的空闲线程数
MaxSpareThreads 75 #最大的空闲线程数
ThreadsPerChild 25 #允许每个进程最多生成多少个线程
MaxRequestsPerChild 0 #设置一个独立的子进程将能处理的请求数量
</IfModule>

  

3、配置服务器支持keep-alived

KeepAlive {On|Off} :启用之后支持一次连接可以发多个请求(对于非常繁忙的服务器建议off
KeepAliveTimeout 15 : 15秒之后断开长连接
MaxKeepAliveRequests 50:一次长连接之内最多允许50个请求

  

4、配置加载的模块

#LoadModule指令  模块名称   模块所在的路径(相对于ServerRoot的路径)
LoadModule foo_module modules/mod_foo.so

 

5、其他常用配置

ServerTokens OS:返回服务器页脚信息的详细程度,尽量选择小信息量(full、major)
ServerRoot "/etc/httpd":服务器的配置文件所在
PidFile run/httpd.pid :服务器主进程pid的保存位置
Timeout 60:超时设置,设置短一点好
Include conf.d/*.conf:默认加载模块的配置文件

  

Apache系列:Apache的全局配置的更多相关文章

  1. jenkins系列之添加全局配置(一)

    第一步: 第二步:执行以下命令: 第三步:找到/c/Users/Administrator/.ssh 目录,里面有两个文件:id_rsa和id_rsa.pub 第四步:配置ssh[这里是id_rsa. ...

  2. iOS学习系列-Apache服务器的配置

    配置Apache服务器 一.目的 能够有一个测试的服务器,不是所有的特殊网络服务都能找到免费得! 二.为什么我们要用"Apache"? Apache是目前使用最广的web服务器 M ...

  3. Apache Maven 3.6.1配置安装

    Apache Maven 3.6.1配置安装 一.下载 maven下载地址:http://maven.apache.org/download.cgi 二.安装 1,解压即可用 2,环境变量配置 MAV ...

  4. Apache Maven 3.5.0配置安装

    1.maven 3.5 下载地址:http://maven.apache.org/download.cgi 2.下载了解压到 3.配置环境变量 4.测试看是否安装成功 5.maven配置(全局配置,用 ...

  5. Apache Maven 3.6.3配置安装

    1.maven 3.5 下载地址:http://maven.apache.org/download.cgi 2.下载了解压到 3.配置环境变量 4.测试看是否安装成功 5.maven配置(全局配置,用 ...

  6. Apache HTTP Server 虚拟主机配置

    Apache HTTP Server 虚拟主机配置(三)     什么是虚拟主机 "虚拟主机"是指在一个机器上运行多个网站(比如:www.company1.com  和 www.c ...

  7. Apache服务器在80端口配置多域名虚拟主机的方法

    我们在配置一台服务器的时候,如果只运行一个站点,往往过于浪费资源.Nginx和Apache都可以通过配置虚拟主机实现多站点.配置虚拟主机的方式主要有两种,一种是多个不同端口对应的多个虚拟主机站点,一种 ...

  8. window xp Apache与Tomcat集群配置--转载

    转载地址:http://www.cnblogs.com/obullxl/archive/2011/06/09/apache-tomcat-cluster-config.html 一. 环境说明 Win ...

  9. Apache,PHP,MySQL,PMA手动配置的注意事项

    注:本文之前发布在自己的QQ空间,复制过来的时候,颜色信息丢失了,回头有空再把颜色重新标上! 前言:LAMP(Linux+Apache+MySQL+PHP)环境是目前开源社区最活跃的开发和运行平台,有 ...

随机推荐

  1. Confluence 6 中修改默认的表现和内容

    Confluence 构建了一些有用的默认设置,这些设置能够让第一次访问使用 Confluence 系统的用户更好的了解系统.同时默认的内容将新空间和其他区域放置在 Confluence 中. Con ...

  2. Linux超级守护进程——xinetd

    一 Linux守护进程 Linux 服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程来执行的. ...

  3. 第十六单元 yum管理RPM包

    yum的功能 本地yum配置 光盘挂载和镜像挂载 本地yum配置 网络yum配置 网络yum配置 Yum命令的使用 使用yum安装软件 使用yum删除软件 安装组件 删除组件 清除缓存 查询 课后作业 ...

  4. Python(列表操作应用实战)

    # 输入一个数据,删除一个列表中的所有指定元素# 给定的列表数据data = [1,2,3,4,5,6,7,8,9,0,5,4,3,5,"b","a",&quo ...

  5. HDU 1573 X问题(中国剩余定理标准解法)

    X问题 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  6. SQLServer锁的基础问题探究

    SqlServer需要在执行操作前对目标资源获取所有权,那么久发生锁定,是一个逻辑概念.为了保证事务的ACID特性设计的一种机制. 在多用户并发操作数据时,为了出现不一致的数据,锁定是必须的机制.使用 ...

  7. GZipStream 压缩与解压数据

    简介:此类表示 GZip 数据格式,它使用无损压缩和解压缩文件的行业标准算法.这种格式包括一个检测数据损坏的循环冗余校验值.GZip 数据格式使用的算法与 DeflateStream 类的算法相同,但 ...

  8. VS2015 将*.xaml.cs文件包裹在*.xaml文件下

    原文:https://stackoverflow.com/questions/13387527/add-existing-xaml-files-to-visual-studio-2012 Right- ...

  9. [LeetCode] Best Time to Buy and Sell Stock 6道合集【DP】

    1. Best Time to Buy and Sell Stock 2. Best Time to Buy and Sell Stock II 3. Best Time to Buy and Sel ...

  10. 【bzoj4031】[HEOI2015]小Z的房间

    题解: 矩阵树定理入门题 一个图的邻接矩阵G:对于无向图的边(u,v),G[u][v]++,G[v][u]++ 一个图的度数矩阵D:对于无向图的边(u,v),D[u][u]++,D[v][v]++; ...