配置文件组成:
整个配置文件由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. hexo d 部署博客时出错

    问题描述: // 第一次遇到的问题 Error: packet_write_wait: Connection to 192.30.253.113 port 22: Broken pipe packet ...

  2. Oracle12c 从入门到精通(第二版) 闫红岩 金松河 编著

    声明:本文只是用于学习笔记使用.方便查询.若需要书本,请到书店购买. 本书封面 前言 第1章 Oracle数据库概述 1.1 Oracle数据库产品结构及组成 1.1.1 标准版 1.1.2 标准版 ...

  3. Oracle 闪回

    Oracle 闪回特性(FLASHBACK DATABASE) 本文来源于:gerainly 的<Oracle 闪回特性(FLASHBACK DATABASE) > -========== ...

  4. Confluence 6 的小型文字档案(Cookies)

    这个页面列出了存储在 Confluence 用户浏览器中的小型文字档案(Cookies)内容.这些内容是由 Confluence 自己创建的.这个页面不会列出由 Confluence 安装的第三方插件 ...

  5. vue阿里上传图片报400错误

    首先我用vue上传阿里图片用的是分片上传,分片上传由于一片是以100kb为起始的,所以当图片大小小于100kb的时候不分片,可以正常上传,当大于100kb的时候,会报400错误如下 One or mo ...

  6. redis-4.0.8 配置文件解读

    # Redis configuration file example.## Note that in order to read the configuration file, Redis must ...

  7. 【sqli-labs】Less11~Less16

    学习sqli-labs的笔记,前面的笔记内容比较详细.后面的只记录关键点了. Less11: POST注入, 有回显,有错误提示 从11题起是POST注入,发现有两个输入框.用firefox的F12查 ...

  8. kali linux 信息收集(Kismet)

    1.kismet工具,是一个无线扫描工具,该工具通过测量周围的无线信号,可以扫描到周围附近所用可用的Ap,以及信道等信息.同时还可以捕获网络中的数据包到一个文件中.这样可以方便分析数据包.下面我将详细 ...

  9. MySQL----数据库简单操作

    启动服务 net start mysql57断开服务 net stop mysql57连接服务 mysql -u root -p断开连接 exit|quit查看版本 select version(); ...

  10. light1370 欧拉函数打表

    /* 给定n个数ai,要求欧拉函数值大于ai的最小的数bi 求sum{bi} */ #include<bits/stdc++.h> using namespace std; #define ...