你好,游客 登录 注册 搜索
背景:
阅读新闻

Apache两种工作模式介绍及配置优化

[日期:2017-08-31] 来源:Linux社区  作者:sandshell [字体: ]

Apache常用工作模式有两种,区别?
worker模式:1、线程模式 2、占用资源少 3、稳定性略差 4、并发大
prefork模式:1、进程模式 2、占用资源多 3、稳定 4、并发一般
apache默认是prefork,编译时候一般选择worker模式。如果编译时候不指定worker模式,那么就是默认的prefork模式
已经确定了worker模式,如何调优呢?

[root@web02 blog]# cd /application/apache/conf/
[root@web02 conf]# vim httpd.conf
把#Include conf/extra/httpd-mpm.conf行的#删除
[root@web02 conf]# cd extra/
[root@web02 extra]# vim httpd-mpm.conf
里面worker模式调试优化默认为:#为注释
<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150 #将来调并发连接数就调这个地方
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild  0
</IfModule>
如果把并发数从150调整为1500,那么自检时候会如下提示:
[root@web02 extra]# ../../bin/apachectl -t
WARNING: MaxClients of 1500 would require 60 servers,
 and would exceed the ServerLimit value of 16.
 Automatically lowering MaxClients to 400.  To increase,
 please see the ServerLimit directive.
Syntax OK
如果增加了ServerLimit        1500如下所示,保存配置文件。
<IfModule mpm_worker_module>
    ServerLimit        1500
    StartServers          2
    MaxClients          1500
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild  0
</IfModule>
再次检查语法就不会报错了。
[root@web02 extra]# ../../bin/apachectl -t
Syntax OK
然后平滑优雅重启即可。
[root@web02 extra]# ../../bin/apachectl graceful
面试时候说下两个模式的区别就可以了。知道如何调试并发
0549-apache目录许可功能说明及实践
apache还有很多坑
[root@web02 extra]# pwd
/application/apache/conf/extra
[root@web02 extra]# vim httpd-vhosts.conf
举例其中DocumentRoot里面的路径是指定的/application/apache2.2.34/htdocs
<VirtualHost *:80>
    ServerAdmin webadmin@qq.com
    DocumentRoot "/application/apache2.2.34/htdocs/blog"
    ServerName blog.etiantian.org
    ErrorLog "logs/blog-error_log"
    CustomLog "logs/blog-access_log" common
</VirtualHost>

如果站点不在指定的路径下面,那么配置后的站点就会报错403错误。
原因是:
[root@web02 extra]# cd ..
[root@web02 conf]# ls
extra  httpd.conf  httpd.conf.bak  magic  mime.types  original
[root@web02 conf]# pwd
/application/apache/conf
[root@web02 conf]# egrep -v "^$|#" httpd.conf
在httpd.conf中已经默认指定好了站点的路径了。如下所示默认:
<Directory "/application/apache2.2.34/htdocs">
    Options -Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

如果站点路径和默认指定的不一样,只需要在httpd.conf里面增加一个站点路径的标签即可。
例如增加如下标签:站点路径/data/www只是举例。
<Directory "/data/www">
    Options -Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

更多Apache相关教程见以下内容

CentOS6.8编译安装Apache2.4.25、MySQL5.7.16、PHP5.6.29  http://www.linuxidc.com/Linux/2016-12/138993.htm

CentOS 6.6下安装Apache 2.2.31 http://www.linuxidc.com/Linux/2017-02/140803.htm

Apache 配置多站点访问及二级域名配置  http://www.linuxidc.com/Linux/2017-03/141339.htm

Ubuntu 16.04 LTS安装Apache2+PHP7.0+MySQL+phpMyAdmin图文详解  http://www.linuxidc.com/Linux/2017-02/140098.htm

CentOS 6下Apache和Tomcat整合  http://www.linuxidc.com/Linux/2017-04/143021.htm

Apache启用gzip压缩模块节约网站带宽  http://www.linuxidc.com/Linux/2017-04/142821.htm

Apache 配置 https  http://www.linuxidc.com/Linux/2017-02/140801.htm

使用Apache搭建Web网站服务器  http://www.linuxidc.com/Linux/2017-05/143468.htm

Linux下Apache安装及实例  http://www.linuxidc.com/Linux/2017-02/140800.htm

Apache2.4.6服务器安装及配置  http://www.linuxidc.com/Linux/2017-01/140006.htm

Ubuntu 16.04下搭建Web服务器(MySQL+PHP+Apache) 教程  http://www.linuxidc.com/Linux/2017-01/139570.htm

Ubuntu/CentOS下Apache多站点配置  http://www.linuxidc.com/Linux/2017-05/143590.htm

CentOS 7下 Apache 2.4.18编译安装详解  http://www.linuxidc.com/Linux/2017-03/142003.htm

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-08/146615.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款