Apache概述
Apache是世界上使用排名第一的Web服务器。因为其强大的跨平台与安全性被广泛使用,是最流行的Web服务器端软件之一。他快速,可靠并且通过简单的API扩充,将PERL/Python/php等解释器编译到服务器中。
Apache有多种产品,可以支持ssl技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不适合多处理环境,因此在一个Apache Web站点扩容时,通常是增加服务器或扩充群集点而不是增加处理器。
工作模式
三种稳定的MPM模式(MPM:多进程处理模块)
prefork模式
Apache在启动前,就预先开放一些子进程,然后等待请求进来。之所以这么做,是为了减少频繁创建和销毁进程的开销。每一个子进程只有一个线程,在一个时间内只能处理一个要求。
优点:成熟稳定,兼容所有新老模块,不用担心线程安全的问题
缺点:占用更多的系统资源,不适合多并发处理
worker工作模式
多进程与多线程的混合模式。它也预先开放了几个子进程(数量较少),由每一个子进程创建一些线程,同时包括一个监听线程。每个请求过来,会被分配到一个线程来服务。线程通常会共享父进程的内存空间,所以在高并发的场景下,会比prefork更优秀。
优点:占据更少的内存,高并发下表现优秀
缺点:必须考虑线程安全的问题
event工作模式
与worker很像,最大的区别在于,它解决了keep-alive场景下,长期被占用的线程的资源浪费问题。event 中,会有一个专门的线程来管理这些keep-alive线程,当有真实请求过来的时候,将请求传递给服务器线程,执行完毕后,又允许它释放。增强了高并发场景下的请求处理能力。
查看方式
ln -s /usr/local/apache2/bin/* /usr/local/bin/
创建apache的软连接
httpd -V |grep -i "server mpm"
查看当前工作模式
相关文件保存位置
配置文件位置:
源码包安装:
主配置文件:vim /usr/local/apache2/etc/httpd.conf
子配置文件:cd /usr/local/apache2/etc/extra/
rpm包安装:/etc/httpd/conf/httpd.conf
网页文件位置:
源码包安装:cd /usr/local/apache2/htdocs/
rpm包安装:/var/www/html/
日志文件位置:
源码包安装:cd /usr/local/apache2/logs/
yum包安装:/var/log/httpd
配置文件详解
针对主机环境的基本配置参数:
ServerRoot /usr/ local/apache2 #apache主目录
Listen :80 #监听端口
LoadModule php7 #加载的相关模块
User
Group #用户和组
ServerAdmin #管理员邮箱
ServerName #服务器名(没有域名解析时,使用临时解析。默认不开启)
ErrorLog "logs/error_log #服务器错误日志
CustomLog "logs/access_log"common #访问记录日志
DirectoryIndex index.html index.php #默认网页文件名,优先级顺序
Include etc/extra/httpd-vhosts.conf #子配置文件中内容也会加载生效
主页目录及权限
DocumentRoot "/usr/local/apache2/htdocs"
#网页文件存放目录(默认)
<Directory "/usr/local/apache2/htdocs">
#定义指定目录的权限
Options Indexes FollowSymLinks
None #没有任何额外权限
All #所有权限(除去MultiViews以外>
Indexes #浏览权限(当此目录下没有默认网页文件时,显示目录内容)
FollowSymLinks #准许软连接到其他目录
MultiViews #准许文件名泛匹配(需要手动开启模块才有效negotiation)
AllowOverride None