1、安装
# yum -y install httpd httpd-devel
# httpd -V|head -1
Server version: Apache/2.4.6 (CentOS)
2、修改主配置文件
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
# vi /etc/httpd/conf/httpd.conf
ServerName www.example.com:80 # 去掉主机名的注释
DocumentRoot "/var/www/html" # 设置站点根目录,与虚拟主机配置保持一致
Include /etc/httpd/conf/extra/*.conf # 指定虚拟主机位置
DirectoryIndex index.html # 设置请求目录时apache提供的默认文件,比如index.php
3、配置并启动虚拟主机
# mkdir /etc/httpd/conf/extra/
# vi /etc/httpd/conf/extra/vhost.conf
<VirtualHost *:80>
ServerName www.efg.com
DocumentRoot /var/www/html # 网站根目录
<Directory "/var/www/html"> # 为该站点目录分配权限
require all granted # 允许任何人访问html目录
AllowOverride All # 开启.htaccess文件
Options Indexes FollowSymLinks # 允许浏览html目录结构,也可以写成 +Indexes +FollowSymLinks
</Directory>
</VirtualHost>
# systemcal start httpd.service
4、yum安装apache注意事项
(1) 命令路径
启动路径: /etc/init.d/httpd
命令路径: /usr/sbin/httpd -h
htpasswd: /usr/bin/htpasswd
检查语法: /usr/sbin/httpd -t
(2) 配置路径
查看工作模式:httpd -V|grep "Server MPM"
工作模式分为:prefork 和 worker,默认使用prefork(最好不要改工作模式)
5、修改apache中多进程模块(MPM-Prefork)的优化参数
(1) 通过http.conf找到Server MPM模块的所在路径
# cat /etc/httpd/conf/httpd.conf |grep "Include" |head -1
Include conf.modules.d/*.conf # 这是存放模块文件的路径
(2) 在模块路径中找到mpm-conf工作引擎文件
# cat /etc/httpd/conf.modules.d/00-mpm.conf |grep "LoadModule"
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so # 默认使用prefork工作模式
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
#LoadModule mpm_event_module modules/mod_mpm_event.so
(3) 三种工作引擎的参考文档在这里 /usr/share/doc/httpd-2.4.6/httpd-mpm.conf
(4) 通过在httpd.conf文件末尾增加如下内容来修改prefrok的优化参数
# vim /etc/httpd/conf/httpd.conf
<IfModule mpm_prefork_module>
ServerLimit 500 # apache并发硬限制,必须在第一行,要求和MaxRequestWorkers一样(不建议增加这个值)
StartServers 20 # apache启动后默认存在的进程数,小公司5-20,中公司20-50,大公司50-100
MinSpareServers 20 # 空闲时保持的最小进程数,要求和StartServers设置一样
MaxSpareServers 30 # 空闲时保持的最大进程数,要大于StartServers
MaxRequestWorkers 500 # apache运行的最大并发数,apache2.3以前被称为MaxClients,小=500 中=500~1500 大型=1500~3000
MaxConnectionsPerChild 0 # 每个子进程可处理的请求数0表示无限个,为防止内存泄露:小=10000 中或大=10000~50000
</IfModule>
(5) 重启apache查看默认启动的进程数已经修改
# systemctl restart httpd
# ps -ef |grep "DFOREGROUND"|grep -v "grep"
root 8931 1 0 18:19 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 8932 8931 0 18:19 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 8933 8931 0 18:19 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 8934 8931 0 18:19 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 8935 8931 0 18:19 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 8936 8931 0 18:19 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 8937 8931 0 18:19 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache ...........
6、修改apache中多线程模块(MPM-Worker)的优化参数
(1) 通过http.conf找到Server MPM模块的所在路径
# cat /etc/httpd/conf/httpd.conf |grep "Include" |head -1
Include conf.modules.d/*.conf # 这是存放模块文件的路径
(2) 在模块路径中找到mpm-conf工作引擎文件
# cat /etc/httpd/conf.modules.d/00-mpm.conf |grep "LoadModule"
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule mpm_worker_module modules/mod_mpm_worker.so # 去掉注释
#LoadModule mpm_event_module modules/mod_mpm_event.so
(3) 三种工作引擎的参考文档在这里 /usr/share/doc/httpd-2.4.6/httpd-mpm.conf
(4) 通过在httpd.conf文件末尾增加如下内容来修改worker的优化参数
# vim /etc/httpd/conf/httpd.conf
<IfModule mpm_worker_module>
ServerLimit 400 # 最大并发数的硬限制,必须在第一行,要求和MaxRequestWorkers一样(不建议增加这个值)
StartServers 3 # 默认启动apache的进程数量,小公司=默认 中=3~5 大=5~10
MinSpareThreads 75 # 空闲状态的最小线程数,小=默认 中=50~100 大=100~200
MaxSpareThreads 250 # 空闲状态的最大线程数,小=默认 中=80~160 大=200~400,一定要大于MinSpareThreads
ThreadsPerChild 25 # 每个线程的最大并发数,小=默认 中=50~100 大型=100~200
MaxRequestWorkers 400 # apache运行的最大并发数,apache2.3以前被称为MaxClients,必须是ThreadsPerChild的16倍
MaxConnectionsPerChild 0 # 每个子进程可处理的请求数0表示无限个,为防止内存泄露:小=10000 中或大=10000~50000
</IfModule>
(5) 重启apache查看已经修改过来了
# httpd -V
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::5e07:6960:7fa:95de. Set the 'ServerName' directive globally to suppress this message
Server version: Apache/2.4.6 (CentOS)
Server built: Nov 16 2020 16:18:20
Server's Module Magic Number: 20120211:24
Server loaded: APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture: 64-bit
Server MPM: worker # 这里