共计 3191 个字符,预计需要花费 8 分钟才能阅读完成。
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