首页 > 其他分享 > 一步一步教你apache深入优化

一步一步教你apache深入优化

时间:2023-02-12 21:04:29浏览次数:47  
标签:httpd 00 一步 -- centos01 usr apache root 优化

Aache深入优化

一、在Centos01上安装apache服务,在Centos02配置DNS服务器使用域名www.stz.com

1、在Centos01上安装apache服务配置网站

1)切换光盘

 一步一步教你apache深入优化_配置文件

2)挂载光盘解压源代码程序

[root@centos01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos01 ~]# tar zxf /mnt/httpd-2.2.17.tar.gz -C /usr/src/
[root@centos01 ~]# ls /usr/src/
debug httpd-2.2.17 kernels

3)配置安装apache

[root@centos01 src]# cd /usr/src/httpd-2.2.17/
[root@centos01 httpd-2.2.17]# ./configure \
> --prefix=/usr/local/httpd \
> --enable-so \
> --enable-rewrite \
> --enable-charset-lite \
> --enable-cgi

4)编译安装apache

[root@centos01 httpd-2.2.17]# make && make install

2、配置apache服务

1)生成服务控制文件添加执行权限

[root@centos01 httpd-2.2.17]# cd
[root@centos01 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@centos01 ~]# chmod +x /etc/init.d/httpd

2)修改服务控制文件

[root@centos01 ~]# vim /etc/init.d/httpd
#!/bin/sh
#chkconfig:35 21 80
#description:Apache Server

3)添加系统服务设置开机自动启动

[root@centos01 ~]# chkconfig --add httpd
[root@centos01 ~]# chkconfig --level 35 httpd on

4)优化apache命令

[root@centos01 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/

3、启动apache服务查看服务运行状态

1)启动服务

[root@centos01 ~]# systemctl start httpd

2)查看服务运行状态

[root@centos01 ~]# netstat -anptu | grep http
tcp6
0 0 :::80 :::* LISTEN 53628/httpd

4、修改apache网站根目录设置网站主页

1)创建网站主页根目录设置主页

[root@centos01 ~]# mkdir /www
[root@centos01 ~]# echo "www.stz.com" > /www/index.html

2)修改apahce主配置文件

[root@centos01 ~]# vim
/usr/local/httpd/conf/httpd.conf
97 ServerName www.benet.com:80
131 <Directory "/www">
132 Options Indexes FollowSymLinks
133 AllowOverride None
134 Order allow,deny
135 Allow from all
136 </Directory>
142 <IfModule dir_module>
143 DirectoryIndex index.html
144 </IfModule>

3)检查主配置文件

[root@centos01 ~]# httpd -t
Syntax OK

4)重新启动apache配置文件加载配置

[root@centos01 ~]# systemctl restart httpd

二、在Centos02上安装DNS使用域名访问日志

1、安装DNS服务设置开机自动启动

1)挂载光盘安装DNS服务

[root@centos02 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@centos02 ~]# ls /mnt/
CentOS_BuildTag GPL
LiveOS RPM-GPG-KEY-CentOS-7
EFI images Packages
RPM-GPG-KEY-CentOS-Testing-7
EULA isolinux repodata
TRANS.TBL

2)安装DNS服务

[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
[root@centos02 ~]# rpm -ivh /mnt/Packages/bind-chroot-9.9.4-50.el7.x86_64.rpm

3)设置服务开机自动启动

[root@centos02 ~]# systemctl start named
[root@centos02 ~]# systemctl enable named

2、修改主配置文件和区域配置文件

1)修改DNS主配置文件

options {     
listen-on port 53 { any; };

directory
"/var/named";
};
zone "stz.com" IN {

type master;

file "/var/named/stz.com.zone";
};

2)检查主配置文件是否错误

[root@centos02 ~]# named-checkconf /etc/named.conf

3)修改区域配置文件

[root@centos02 ~]# vim
/var/named/stz.com.zone
$TTL 86400
@ SOA stz.com. root.stz.com. (
202321210
1H
15M
1W
1D
)
@ NS centos02.stz.com.
centos02 A 192.168.100.20
www A 192.168.100.10

4)检查区域配置文件是否错误

[root@centos02 ~]# named-checkzone stz.com /var/named/stz.com.zone 
zone stz.com/IN: loaded serial 202321210
OK

3、启动DNS服务查看服务运行状态

1)启动DNS服务

[root@centos02 ~]# systemctl start named

2)查看服务运行状态

[root@centos02 ~]# netstat -anptu | grep named
tcp
0 0 127.0.0.1:53 0.0.0.0:* LISTEN 39645/named
tcp
0 0 127.0.0.1:953 0.0.0.0:* LISTEN 39645/named
tcp6
0 0 ::1:53 :::* LISTEN 39645/named
tcp6
0 0 ::1:953 :::* LISTEN 39645/named
udp
0 0 127.0.0.1:53 0.0.0.0:* 39645/named
udp6
0 0 ::1:53 :::* 39645/named

4、配置验证DNS访问网站

1)给客户端配置ip

 一步一步教你apache深入优化_配置文件_02

2)配置域名解析

 一步一步教你apache深入优化_配置文件_03

3)访问网站

 一步一步教你apache深入优化_centos_04

三、在Centos01上配置apache工作模式优化

1、管理Apache的prefork工作模式

1)查看Apache默认的prefork工作模式

[root@centos01 ~]# httpd -V
Server version: Apache/2.2.17 (Unix)
Server built: Feb 12 2023 18:02:11
Server's Module Magic Number: 20051115:25
Server loaded: APR 1.4.2, APR-Util 1.3.10
Compiled using: APR 1.4.2, APR-Util 1.3.10
Architecture: 64-bit
Server MPM: Prefork

threaded: no
forked: yes (variable process count)
Server compiled with....
-D
APACHE_MPM_DIR="server/mpm/prefork"
-D
APR_HAS_SENDFILE
-D
APR_HAS_MMAP
-D
APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D
APR_USE_SYSVSEM_SERIALIZE
-D
APR_USE_PTHREAD_SERIALIZE
-D
APR_HAS_OTHER_CHILD
-D
AP_HAVE_RELIABLE_PIPED_LOGS
-D
DYNAMIC_MODULE_LIMIT=128
-D
HTTPD_ROOT="/usr/local/httpd"
-D
SUEXEC_BIN="/usr/local/httpd/bin/suexec"
-D
DEFAULT_PIDLOG="logs/httpd.pid"
-D
DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D
DEFAULT_LOCKFILE="logs/accept.lock"
-D
DEFAULT_ERRORLOG="logs/error_log"
-D
AP_TYPES_CONFIG_FILE="conf/mime.types"
-D
SERVER_CONFIG_FILE="conf/httpd.conf"

2)优化prefork工作模式

[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf
<IfModule mpm_prefork_module>

StartServers 5 //启动进程数
MinSpareServers 5 //最小空闲进程,空闲小于当前值自动创建

MaxSpareServers 10 //空闲进程大于当前值自动kill掉

Serverlimit 200 //最大进程

MaxClients 150 //最大并发请求数必须前150处理完处理151

MaxRequestsPerChild 0 //每个子进程最大处理请求数0不限制,可以防止内存外溢和负载下降可以减少子进程数
</IfModule>

3)查看prefork的进程信息

[root@centos01 ~]# ps -ef | grep http
root
53908 1 0 18:26 ? 00:00:00 /usr/local/httpd/bin/httpd -k
start
daemon
53909 53908 0 18:26 ? 00:00:00 /usr/local/httpd/bin/httpd -k
start
daemon
53910 53908 0 18:26 ? 00:00:00 /usr/local/httpd/bin/httpd -k
start
daemon
53911 53908 0 18:26 ? 00:00:00 /usr/local/httpd/bin/httpd -k
start
daemon
53912 53908 0 18:26 ? 00:00:00 /usr/local/httpd/bin/httpd -k
start
daemon
53913 53908 0 18:26 ? 00:00:00 /usr/local/httpd/bin/httpd -k
start
daemon
92661 53908 0 18:51 ? 00:00:00 /usr/local/httpd/bin/httpd -k
start
root
92840 92692 0 19:00 pts/1 00:00:00 grep --color=auto http

2、管理apache的woker工作模式

1)修改apache的工作模式为worker

[root@centos01 httpd-2.2.17]# ./configure
--prefix=/usr/local/httpd/ --enable-so \
> --enable-rewrite \
> --enable-charset-lite \
> --enable-cgi \
> --with-mpm=worker

2)安装apache

[root@centos01 httpd-2.2.17]# make && make install

3)查看修改后的工作模式

[root@centos01 ~]# httpd -V
Server version: Apache/2.2.17 (Unix)
Server built: Feb 12 2023 19:06:06
Server's Module Magic Number: 20051115:25
Server loaded: APR 1.4.2, APR-Util 1.3.10
Compiled using: APR 1.4.2, APR-Util 1.3.10
Architecture: 64-bit
Server MPM: Worker

threaded: yes (fixed thread
count)

forked: yes (variable process
count)
Server compiled with....
-D
APACHE_MPM_DIR="server/mpm/worker"
-D
APR_HAS_SENDFILE
-D
APR_HAS_MMAP
-D
APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D
APR_USE_SYSVSEM_SERIALIZE
-D
APR_USE_PTHREAD_SERIALIZE
-D
APR_HAS_OTHER_CHILD
-D
AP_HAVE_RELIABLE_PIPED_LOGS
-D
DYNAMIC_MODULE_LIMIT=128
-D
HTTPD_ROOT="/usr/local/httpd/"
-D
SUEXEC_BIN="/usr/local/httpd//bin/suexec"
-D
DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D
DEFAULT_ERRORLOG="logs/error_log"
-D
AP_TYPES_CONFIG_FILE="conf/mime.types"
-D
SERVER_CONFIG_FILE="conf/httpd.conf"

4)修改apache主配置文件加载worker配置

[root@centos01 ~]# vim /usr/local/httpd/conf/httpd.conf
347 Include conf/extra/httpd-mpm.con

5)修改apache工作模式配置文件

[root@centos01 ~]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf
<IfModule mpm_worker_module>

StartServers 2 //启动进程

ServerLimit 512 //最大进程数

ThreadLimit 64 //每个进程处理最大线程

MaxClients 12800 //最大连接并发请求

MinSpareThreads 25 //最小空闲线程

MaxSpareThreads 75 //最大空闲线程

ThreadsPerChild 25 //每个进程默认处理线程数

MaxRequestsPerChild 0 ///每个子进程最大处理请求数0不限制
</IfModule>

6)检查配置是否错误

[root@centos01 ~]# httpd -t
Syntax OK

7)重启服务

[root@centos01 ~]# systemctl restart httpd

8)使用pstree查看线程数-a详细信息

[root@centos01 ~]# pstree
systemd─┬─ModemManager───2*[{ModemManager}]

├─NetworkManager───2*[{NetworkManager}]

├─VGAuthService

├─2*[abrt-watch-log]

├─abrtd

├─agetty

├─alsactl

├─atd

├─auditd─┬─audispd─┬─sedispatch

│ │ └─{audispd}

│ └─{auditd}

├─avahi-daemon───avahi-daemon

├─chronyd

├─crond

├─cupsd

├─dbus-daemon

├─dnsmasq───dnsmasq

├─gssproxy───5*[{gssproxy}]

├─httpd─┬─httpd

│ └─2*[httpd───26*[{httpd}]]

├─ksmtuned───sleep

├─libvirtd───15*[{libvirtd}]

├─lsmd

├─lvmetad

├─master─┬─pickup

│ └─qmgr
├─polkitd───5*[{polkitd}]

├─rngd

├─rsyslogd───2*[{rsyslogd}]

├─smartd

├─sshd─┬─sshd───bash

│ └─sshd───bash───pstree

├─systemd-journal

├─systemd-logind

├─systemd-udevd

├─tuned───4*[{tuned}]

└─vmtoolsd───{vmtoolsd}

3、配置使用ab压力测试

1)压力测试

[root@centos01 ~]# ab -n1000 -c500
www.stz.com/index.html
This is ApacheBench, Version 2.3
<$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology
Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation,
http://www.apache.org/

Benchmarking www.stz.com (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests


Server Software: Apache/2.2.17
Server Hostname: www.stz.com
Server Port: 80

Document Path: /index.html
Document Length: 12 bytes

Concurrency Level: 500
Time taken for tests: 0.823 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 272205 bytes
HTML transferred: 12420 bytes
Requests per second: 1214.71 [#/sec] (mean)
Time per request: 411.623 [ms] (mean)
Time per request: 0.823 [ms] (mean, across all concurrent
requests)
Transfer rate: 322.90 [Kbytes/sec] received

Connection Times (ms)
min
mean[+/-sd] median max
Connect: 0
2 1.9 1
6
Processing: 4
75 137.9 7 816
Waiting: 4
75 138.0 7 816
Total: 4
77 139.3 8 820

Percentage of the requests served within a
certain time (ms)

50% 8

66% 10

75% 11

80% 215

90% 417

95% 420

98% 420

99% 421
100%
820 (longest request)

2)查看线程和进程数

[root@centos01 ~]# pstree -a
systemd --switched-root --system
--deserialize21

├─ModemManager

│ └─2*[{ModemManager}]

├─NetworkManager --no-daemon

│ └─2*[{NetworkManager}]

├─VGAuthService -s

├─abrt-watch-log -F Backtrace /var/log/Xorg.0.log --/usr/b

├─abrt-watch-log -F BUG: WARNING: at WARNING: CPU:INFO: po

├─abrtd -d -s

├─agetty --noclear tty1 linux

├─alsactl -s -n 19 -c -EALSA_CONFIG_PATH=/etc/alsa/alsact

├─atd -f

├─auditd

│ ├─audispd

│ │ ├─sedispatch

│ │ └─{audispd}

│ └─{auditd}

├─avahi-daemon

│ └─avahi-daemon

├─chronyd

├─crond -n

├─cupsd -f

├─dbus-daemon --system --address=systemd: --nofork ...

├─dnsmasq--conf-file=/var/lib/libvirt/dnsmasq/default.con


└─dnsmasq--conf-file=/var/lib/libvirt/dnsmasq/default.con
├─gssproxy
-D

│ └─5*[{gssproxy}]

├─httpd -k start

│ ├─httpd -k start

│ ├─httpd -k start

│ │ └─26*[{httpd}]

│ └─httpd -k start

│ └─26*[{httpd}]

├─ksmtuned /usr/sbin/ksmtuned

│ └─sleep 60

├─libvirtd

│ └─15*[{libvirtd}]

├─lsmd -d

├─lvmetad -f

├─master -w

│ ├─pickup -l -t unix -u

│ └─qmgr -l -t unix -u

├─polkitd --no-debug

│ └─5*[{polkitd}]

├─rngd -f

├─rsyslogd -n

│ └─2*[{rsyslogd}]

├─smartd -n -q never

├─sshd -D

│ ├─sshd

│ │ └─bash

│ └─sshd

│ └─bash

│ └─pstree -a

├─systemd-journal

├─systemd-logind

├─systemd-udevd

├─tuned -Es /usr/sbin/tuned -l -P

│ └─4*[{tuned}]

└─vmtoolsd

└─{vmtoolsd}

标签:httpd,00,一步,--,centos01,usr,apache,root,优化
From: https://blog.51cto.com/u_15946809/6052142

相关文章

  • Nginx优化与防盗链
    Nginx优化与防盗链......
  • ipo导出excel优化
    如题,java后台使用ipo导出excel,18万条数据耗时130S,效率不是很理想。排查发现慢在了service层获取数据上,SQL单独拿出来就是个单表查询,并不慢,但是mbatis映射到list就慢了,2W条......
  • dremio 24 版本对于表优化的处理
    dremio24版本开始支持表优化,主要是对于iceberg的表优化机制简单说明dremio认为256M是一个很不错的优选大小,其他的认为就是过小后者过大参考图  额外的能力支......
  • 从0到1一步一步玩转openEuler--04 openEuler管理用户
    04openEuler管理用户在Linux中,每个普通用户都有一个账户,包括用户名、密码和主目录等信息。除此之外,还有一些系统本身创建的特殊用户,它们具有特殊的意义,其中最重要的是管......
  • Apache 网页深入优化
    一、Apache网页优化概述•在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代......
  • 01AI编译器后端优化介绍
    1、AI编译器架构 准备好用Caffe、Tensorflow等训练好的神经网络模型。神经网络模型转换成GraphIR,然后经过GraphOptimizer的一系列Pass优化,列如:图算融合、数据排布......
  • 数据库索引原理及优化
    摘要: 本文内容主要来源于互联网上主流文章,只是按照个人理解稍作整合,后面附有参考链接。本文内容主要来源于互联网上主流文章,只是按照个人理解稍作整合,后面附有参考链接......
  • 巨量千川优化前期
    冷启动期间:影响千川起量的因素:1.人群覆盖人数,2.出价,3.素材(点击率,转化率)快速度过冷启动期1.前期出价建议是产品客单价的40%-60%,如果跑不动,逐步提高价格,如果,......
  • Apache日志分割
    1、配置httpd主配置,在httpd子配置目录下创建一个以conf结尾的文件,并添加配置信息Apache日志分割2、创建目录,添加首页,重启服务、关闭防火墙3、访问网页,多刷新几次,查看访问日......
  • MySQL——优化(二):索引创建和失效
    一、创建索引的原则1、建议创建索引的场景where语句的查询条件select语句,对于某些字段经常作为where语句的查询条件;Update/delete语句的where条件频繁使用时......