Apache的安装与部署
检查是否安装rpm包httpd
rpm -a httpd
\\查看是否安装
rpm -e httod --nodeps
\\ 卸载已经安装的httpd
安装前提软件
把软件复制到虚拟机的/usr/src目录下或直接下载到虚拟机
如果编译安装无法执行,可能是开发软件工具没有安装,需要先安装开发软件:命令如下
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
编写脚本安装前提软件:
mkdir /sh
cd /sh
vim qianti.sh
添加:
#!/bin/bash cd /usr/src tar zxf apr-1.5.2.tar.gz cd apr-1.5.2 ./configure --prefix=/usr/local/apr && make && make install
#这是用gzip的方式解压,在进行编译安装
cd .. tar zxf apr-util-1.5.4.tar.gz cd apr-util-1.5.4 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr && make && make install
#这是用gzip的方式解压,在进行编译安装
cd …
yum -y install zlib-*
tar zxf pcre-8.39.tar.gz
./configure --prefix=/usr/local/pcre && make && make install
#这是直接用yum源下载,在编译按装
cd …
tar zxf openssl-1.0.1u.tar.gz
cd openssl-1.0.1u
./config -fPIC --prefix=/usr/local/openssl enable-shared && make && make install
保存退出
执行qianti.sh脚本:
chmod +x qianti.sh \\给脚本增加x权限
sh qianti.sh \\执行脚本
安装Apache主程序
cd /sh
\\进入是目录
vim httpd.sh
\\编写httpd.sh
添加:
#!/bin/bash cd /usr/src tar zxf httpd-2.4.25.tar.gz cd httpd-2.4.25 ./configure --prefix=/usr/local/httpd --enable-so --enable-cgi --enable-cgid --enable-ssl --with-ssl=/usr/local/openssl --enable-rewrite --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mods-shared=most --enable-mpms-shared=all --with-mpm=event --enable-proxy --enable-proxy-fcgi --enable-expires --enable-deflate && make && make install
#这是用gzip的方式解压,在进行编译安装]
保存退出
优化链接
ln -s /usr/local/httpd/bin/* /usr/local/bin
这是为了叫系统更加快捷找到所创建的链接。
添加系统服务
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vim /etc/init.d/httpd
定位到第二行:修改为
chkconfig: 35 85 15
\\声明服务启动级别,开机启动顺序,关机关闭顺序
description: apache 2.4.25
\\服务声明,简要信息
保存退出
chkconfig --add httpd
\\添加httpd到系统服务
chkconfig httpd on
\\设置服务开机自启(等同于:systemctl enable httpd)
systemctl start httpd
\\开启服务(等同于:service httpd start)
查看httpd模块
httpd -V
\\查看版本和已装模块
ttpd -l
\\只查看静态编译模块
httpd -M
\\查看所有模块
MPM(Multi Process Modules):多进程处理模块
负责实现网络监听、请求的处理等功能,目的为了在不同的平台上实现最优化的性能和稳定性。
操作系统平台 | MPM |
---|---|
BeOS | beos |
NetWare | mpm_netware |
OS/2 | mpm_os2 |
linux | prefork、worker、event |
Windows | mpm_winnt |
prefork模式:
非线程、预生成进程型MPM,一个子进程同一时间点仅能处理一个用户请求,根据并发请求数动态调整子进程
worker模式:
线程化、多进程型MPM,每个进程可生成多个线程,每个线程处理一个请求,缺点:长连接,资源容易被占用**
event模式:
worker的改进版,使用监控线程处理长连接出现的资源占用问题**
修改mpm配置文件
vim /usr/local/httpd/conf/extra/httpd-mpm.conf
<IfModule mpm_event_module>
StartServers 3
\\apache 启动时候默认开始的子进程数
MinSpareThreads 75
\\最小空闲数量的工作线程
MaxSpareThreads 250
\\最大空闲数量的工作线程
ThreadsPerChild 25
\\每个子进程产生的线程数量
MaxRequestWorkers 400
\\允许同时的最大接入请求数量
MaxConnectionsPerChild 0
\\每个子进程可处理的请求数
</IfModule>
使用ab命令进行压力测试
yum -y install httpd-tools
ab -c 160 -n 10000 http://192.168.1.102/index.html
使用ab压力测试命令进行160人并发访问,发出10000个请求。
<–仅供参考!–>