yum安装apache与优化

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    # 这里
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值