Apache Web服务器

一、Apache Web服务器入门简介

Apache HTTP Server是一个多模块化的服务器,经过多次修改,成为目前世界使用排名第一的Web服务器软件。可以运行在几乎所有广泛使用的计算机平台上。

Apache服务器的特点是使用简单,速度快,性能稳定,可以作为负载均衡及代理服务器来使用

1.Prefork MPM 工作原理

Apache Web服务器又三种处理模块:Prefork MPM、Worker MPM、Event MPM。

使用多个进程,每个进程只有一个线程,每个进程在某个确定的时间只能维持一个连接,优点是稳定,但内存开销较高

2.Worker MPM 工作原理

使用多个进程,每个进程包含多个线程,每个线程在某个确定的时间只能维持一个连接,内存占用量比较小,适合大并发,高流量的Web服务器。

Worker MPM缺点是一个线程崩溃,整个进程就会连同其任何线程一起挂掉

3.Apache Web服务器安装

从Apache官方站点下载目前稳定版本httpd-2.2.24版本

http://archive.apache.org/dist/httpd/httpd-2.2.24.tar.bz2

4.Apache Web服务器安装步骤详解

#解压源码包
[root@huyouba1 ~]# tar xvf httpd-2.2.24.tar.bz2 

#进入解压目录
[root@huyouba1 ~]# cd httpd-2.2.24/

#安装apr相关移植库模块
[root@huyouba1 httpd-2.2.24]# yum -y install apr apr-devel apr-util apr-util-devel

#预编译Apache,启用rewrite规则、启用动态加载库
[root@huyouba1 httpd-2.2.24]# ./configure --prefix=/usr/local/apache/ --enable-rewrite --enable-so

#编译
[root@huyouba1 httpd-2.2.24]# make

#安装
[root@huyouba1 httpd-2.2.24]# make install 

Apache2.2.24安装完毕

修改apache监听IP,启动Apache服务,关闭selinux、firewalld防火墙

[root@huyouba1 ~]# vim /usr/local/apache/conf/httpd.conf 

41 Listen 192.168.100.100:80

[root@huyouba1 ~]# /usr/local/apache/bin/apachectl start

[root@huyouba1 ~]# setenforce 0

[root@huyouba1 ~]# systemctl stop  firewalld

查看Apache服务进程,通过客户端浏览器访问http://192.168.100.100/

5.Apache虚拟主机企业应用

企业真实环境中,一台Web服务器发布单个网站非常浪费资源,所以一台Web服务器上会发布多个网站,少则3~5个,多则2~30个网站。在一台服务器上发布多网站,也称之为部署多个虚拟主机,Web虚拟主机配置方法有以下三种

  • 基于单IP多个端口
  • 基于多IP地址一个端口
  • 基于单IP一个端口不同域名

其中基于同一端口不同域名的方式在企业中得到广泛应用,以下为基于一个端口不同域名,在一台Apache Web服务器上部署多个网站

(1)创建虚拟主机配置文件httpd-vhosts.conf,该文件默认已存在,需去掉httpd.conf配置文件中的#号即可

[root@huyouba1 ~]# vim /usr/local/apache/conf/httpd.conf

396 Include conf/extra/httpd-vhosts.conf

(2)修改配置文件/usr/local/apache/conf/extra/httpd-vhosts.conf中代码

[root@huyouba1 ~]# vim /usr/local/apache/conf/extra/httpd-vhosts.conf

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin webmaster@huyouba11.xyz
    DocumentRoot "/usr/local/apache/htdocs/huyouba11"
    ServerName www.huyouba11.xyz
    ServerAlias www.huyouba11.xyz
    ErrorLog "logs/huyouba11.xyz-error_log"
    CustomLog "logs/huyouba11.xyz-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@huyouba12.xyz
    DocumentRoot "/usr/local/apache/htdocs/huyouba12"
    ServerName www.huyouba12.xyz
    ServerAlias www.huyouba12.xyz
    ErrorLog "logs/huyouba12.xyz-error_log"
    CustomLog "logs/huyouba12.xyz-access_log" common
</VirtualHost>

http-vhosts.conf参数详解

  • NameVirtualHost *:80:开启虚拟主机,并且监听本地所有网卡接口的80端口
  • <VirtualHost *:80>:虚拟主机配置起始
  • ServerAdmin support@linuxli.com:管理员邮箱
  • DocumentRoot “/usr/local/apache2/htdocs/linuxli1”:虚拟主机发布目录
  • ServerName www.linuxli1.com:虚拟主机完整域名
  • ErrorLog “logs/www.linuxli1.com-error_log”:错误日志路径及文件名
  • CustomLog “logs/www.linuxli1.com-access_log” common:访问日志路径及文件名
  • </VirtualHost>:虚拟主机配置结束

(3)创建www.huyouba11.xyz及www.huyouba12.xyz发布目录,重启Apache服务,并分别创建index.html页面

[root@huyouba1 ~]# mkdir -p /usr/local/apache/htdocs/{huyouba11,huyouba12}/

[root@huyouba1 ~]# /usr/local/apache/bin/apachectl restart

[root@huyouba1 ~]# echo "<h1>www.huyouba11.xyz Pages</h1>"`>/usr/local/apache/htdocs/huyouba11/index.html

[root@huyouba1 ~]# echo "<h1>www.huyouba12.xyz Pages</h1>"`>/usr/local/apache/htdocs/huyouba12/index.html

(4)windows 客户端设置hosts映射,将www.huyouba11.xyz、www.huyouba12.xyz与192.168.100.100 IP进行映射绑定,绑定方法是在“C:\Windows\System32\drivers\etc”文件夹中,使用记事本编辑hosts文件,加入以下代码

192.168.100.100 www.huyouba11.xyz
192.168.100.100 www.huyouba12.xyz

(5)浏览器访问www.huyouba11.xyz,www.huyouba12.xyz

至此Apache基于多域名虚拟主机配置完毕,如果还需添加虚拟主机,直接复制其中一个虚拟主机配置、修改Web发布目录即可

6.Apache常用目录学习

apache可以基于源码安装,YUM安装,不同的安装方法,所属的路径不同,以下为Apache常用路径的功能用途

  • /usr/lib64/httpd/modules:Apache模块存放位置
  • /var/www/html/:YUM安装Apache网站发布目录
  • /var/www/error/:服务器设置错误信息,浏览器显示
  • /var/www/icons/:Apache小图标文件存放目录
  • /var/www/cgi-bin/:可执行的CGI程序存放目录
  • /var/log/httpd/:Apache日志目录
  • /usr/sbin/apachectl:Apache启动脚本
  • /usr/sbin/httpd:Apache二进制执行文件
  • /usr/bin/htpasswd:设置Apache目录密码访问
  • /usr/local/apache/bin/:Apahce命令目录
  • /usr/local/apahce/build/:Apahce构建编译目录
  • /usr/local/apache/htdocs/:源码安装Apache网站发布目录
  • /usr/local/apache/cgi-bin/:可执行的CGI程序存放目录
  • /usr/local/apache/include:Apahce 引用配置文件目录
  • /usr/local/apache/logs/:Apache日志目录
  • /usr/local/apache/man:Apacheb帮助文档目录
  • /usr/local/apache/manual:Apache手册
  • /usr/local/apache/modules:Apache模块路径

7.Apache配置文件详解

Apache的配置文件是/usr/local/apache/conf/httpd.conf

  • ServerTokens OS:显示服务器的版本和操作系统内核版本
  • ServerRoot “/usr/local/apache2/”:Apache主配置目录
  • PidFile run /http.pid:PidFile进程文件
  • Timeout 60:不论接收或发送,当持续连接等待超过 60秒则该次连接就中断
  • KeepAlive Off:关闭持续性的连接
  • MaxKeepAliveRequests 100:当KeepAlive设置为On的时候,该数值可以决定此次连接能够传输的最大传输数量
  • KeepAliveTimeout 65:当KeepAlive设置为On的时候,该连接在最后一次传输后等待延迟的秒数
  • < IfModule prefork.c >:PreforkMPM引擎配置段
  • StartServer 8:默认启动Apache工作进程数
  • MinSpareServers 5:最小空闲进程数
  • MaxSpareServers 20:最大空闲进程数
  • ServerLimit 4096:Apache服务器最多进程数
  • MaxClients 4096:每秒支持的最大客户端并发
  • MaxRequestsPerChild 4000:每个进程能处理的最大请求数
  • </IfModule>:定义模块,模块标签
  • < IfModule worker.c > :Worker MPM引擎配置段.
  • StartServer 8:默认启动Apache工作进程数
  • MaxClients 4000:每秒支持的最大客户端并发
  • MinSpareThreads 25:最小空闲线程数
  • MaxSpareThreads 75:最大空闲线程数
  • ThreadsPerChild 75:每个进程启动的线程数
  • MaxRequestsPerChild 0:每个进程能处理的最大请求数,0表示无限制。
  • </IfModule>:定义模块,模块标签
  • LoadModule mod_version.so:静态加载Apache相关模块
  • ServerAdmin support@linuxli.com:管理员邮箱,网站异常,错误信息会发送至该邮箱
  • DocumentRoot “/usr/local/apache2//htdocs”Apache网站默认发布目录
  • <Directory “/data/webapps/www1”>:设置/data/webapps/www1目录权限
  • AllowOverride All:加载发布目录中的.htaccess文件
  • Options-Indexes FollowSymLinks:禁止发布目录以目录方式被浏览
  • Order allow,deny:访问顺序,先检查允许设置,没有允许的设置则全部拒绝
  • Allow from all:允许所有客户端访问
  • </Directory>:定义目录,目录标签
  • AllowOverride:设置为None时,目录中.htaccess文件被完全忽略,当指令设置为All时,.htaccess文件生效
  • Options-Indexes FollowSymLinks:禁止浏览目录,去掉“-”,表示浏览目录,常用于下载站点
  • Order allow,deny:默认情况下禁止所有客户机访问
  • Order deny,allow:默认情况下允许所有客户机访问
  • Allow from all:允许所有客户机访问

软件包下载位置

点击下载httpd-2.2.24.tar.bz2

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦