简介–Apache HTTP Server
在Internet 网络环境中,Web服务无疑是最为流行的应用系统。有了Web站点,企业可以充分展示自己的产品,宣传企业形象。Web站点还为企业提供了与客户交流、电子商务交易平台等丰富的网络应用。部署与维护Web服务是运维工程师必须掌握的一个技能。本章将学习著名的Web网站服务——Apache HTTP Server”的安装及httpd服务的基本配置。
本章重点 httpd 服务的基本配置
一. Apache网站服务基础
Apache HTTP Server 是广泛应用的Web应用系统之一,要运用好它,必须先了解它的特点及其编译安装过程。
1.1 Apache简介
Apache HTTP Server是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在Web服务器领域中长期保持着超过半数的份额。Apache 服务器可以运行在Linux、UNIX、Windows等多种操作系统平台中。
1.2 Apache的起源
1.Apache服务器是针对之前出现的若干个Web服务器程序进行整合、完善后形成的软件,其名称来源于‘APatchy Server”,意思是“基于原有Web服务程序的代码进行修改(补丁)后形成的服务器程序”。
2.1995年,Apache 服务程序的1.0版本发布,之后一直由“Apache Group”负责该项目的管理和维护:直到1999年,在"Apache Group”的基础上成立了Apache 软件基金会(Apache Software Foundation,ASF)。
3.目前,Apache项目一直由ASF负责管理和维护。ASF是非营利性质的组织,最初只负责“Apache Web”服务器项目的管理,随着Web应用需求的不断扩大,ASF逐渐增加了许多与Web技术相关的开源软件项目。
4.因此,Apache现在不仅代表着Web服务器,而且更广泛地代表着ASF管理的众多开源软件项目。ASF的官方网站是http://www.apache.org/。“Apache HTTP Server”是ASF旗下著名的软件项目之一,其正式名称是“httpd”,也就是历史上的Apache网站服务器。在本章后续内容中,若未做特殊说明,使用“Apache”或者“httpd”,均指的是"Apache HTTP Server"。
3.Apache的主要特点
Apache服务器在功能、性能和安全性等方面的表现都是比较突出的,可以较好地满足Web服务器用户的应用需求。其主要特点包括以下几个方面。
1.开放源代码:这是Apache服务器的重要特性之一,也是其他特性的基础。Apache 服务程序由全世界的众多开发者共同维护,并且任何人都可以自由使用,这充分体现了开源软件的精神。
2.跨平台应用:这个特性得益于Apache的源代码开放。Apache服务器可以运行在绝大多数软硬件平台上,所有UNIX操作系统都可以运行Apache服务器,Apache服务器甚至可以良好地运行在大多数Windows系统平台中.Apache服务器的跨平台特性使其具有被广泛应用的条件。
3.支持各种Web编程语言:Apache 服务器可支持的网页编程语言包括Perl、PHP.Python,Java.等,甚至微软的ASP技术也可以在Apache服务器中使用。支持各种常用的Web编程语言使Apache具有更广泛的应用领域。
4.模块化设计:Apache并没有将所有的功能集中在单一的服务程序内部,而是尽可能地通过标准的模块实现专有的功能,这为Apache服务器带来了良好的扩展性。其他软件开发商可以编写标准的模块程序,从而添加Apache本身并不具有的其他功能。
5.运行非常稳定:Apache服务器可用于构建具有大负载访问量的Web站点,很多知名的企业网站都使用Apache作为Web服务软件。良好的安全性;Apache服务器具有相对较好的安全性,这是开源软件共同具有的特性。并且,Apache的维护团队会及时对已发现的漏洞提供修补程序,为Apache的所有使用者提供尽可能安全的服务器程序。
4.Apache的主要版本
Apache 服务器目前包括1.X和2.X两个版本,并且对其分别进行维护。两个版本具有一定的差异,也具有各自的特性。
1.X系列的最高版本是1.3,该版本继承了Apache服务器1.0版本以来的优秀特性和配置管理风格,具有非常好的兼容性、稳定性。
从2.0版开始,Apache服务器加入了许多新的功能,使用的配置语法和管理风格也有所改变。对于新构建的网站服务器,使用2.X版本是一个不错的选择。
一.安装httpd服务器
在配置Apache网站服务之前,需要正确安装好httpd服务器软件。htpd服务器的安装可以选用RPM安装、源码编译安装这两种方式。前者相对比较简单、快速,但是在功能上存在一定的局限性.在实际的生产环境中,使用源码编译安装的方式要更加普遍。
二.使用源代码安装Apache
本章使用源代码安装的方式安装Apache服务
1.首先,在使用源代码安装的前提下,需要把Linux的挂载光盘改为Linux.iso,然后挂载解压,如图:
2.挂载目录
[root@centos02 ~]# rm -rf /etc/yum.repos.d/CentOS-*
[root@centos02 ~]# mount /dev/cdrom /mnt/
[root@centos02 ~]# df -TH
3.使用源代码安装软件的过程无非就是:
1)解压源代码
2)配置源代码(支持动态模块扩展,地址重写,多字符集)
3)编译源代码
4)安装源代码
5)使用源代码
下面我们安装上述的例子来配置
解压源代码:
[root@centos02 ~]# tar zxvf /mnt/httpd-2.2.17.tar.gz -C /usr/src/
配置源代码:
首先切换到解压路径:/usr/src/httpd-2.2.17/ 然后开始配置
[root@centos02 ~]# cd /usr/src/httpd-2.2.17/
[root@centos02 httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-cgi --enable-rewrite --enable-charset-list
这里给大家说一下
./configure --prefix=/usr/local/httpd/ --enable-so --enabled-cgi --enable-rewrite --enalbe-chareset-lite的意思
–prefix:指定将httpd服务程序安装到哪个目录下,如/usr/local/htpd。
–enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力。
–enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
–enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页。
–enable-cgi;启用CGI脚本程序支持,便于扩展网站的应用访问能力。
编译源代码:
使用make进行源代码编译,如图:
[root@centos02 httpd-2.2.17]# make && make install
Apache的主配置文件路径:
/usr/local/httpd/conf/httpd.conf
日志文件路径:
/usr/local/httpd/logs/
默认网站存储数据的根目录路径:
/usr/local/httpd/htdocs/
三.优化Apache管理命令
通过源码编译安装的httpd服务,程序路径并不在默认的搜索路径中,为了使该服务在使用时更加方便,可以为相关程序添加符号链接。这样,再执行相关命令时就不用输入冗长的路径了。例如,当执行“htupd-v”命令(用于查看程序版本)时,即相当于执行“/usr/local/httpd/bin/httpd-v”命令。
[root@centos02 ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
四.生成服务控制文件并修改
使用chkconfig 添加系统服务若希望将httpd添加为系统服务,以便通过chkconfig进行管理,需要建立可控的服务脚本。例如,可将apachectl 脚本复制为/etc/init.d/htupd.并在文件开头添加chkconfig识别配置,然后将其添加为标准的Linux系统服务。
1、生成服务控制文件
[root@centos02 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@centos02 ~]# chmod +x /etc/init.d/httpd
2、修改服务控制文件
[root@centos02 ~]# vim /etc/init.d/httpd
#!/bin/sh
#chkconfig:35 21 80
#description:Apache Server
五、设置为系统服务并且设置为开机自启
1.设置为系统服务
[root@centos02 ~]# chkconfig --add httpd
2.设置为开机自启
[root@centos02 ~]# chkconfig --level 35 httpd on
六、启动服务并且设置为开机自动
[root@centos02 ~]# systemctl start httpd
[root@centos02 ~]# systemctl enable httpd
1.监听端口
[root@centos02 ~]# netstat -anptu | grep 80
2.访问http://192.168.100.20
3.查看访问日志
[root@centos02 ~]# tail -f /usr/local/httpd/logs/access_log
七、实验案例
需求描述
1.编译安装htpd服务器,要求支持动态模块扩展、地址重写、多字符集。
2.网站名称设置为www.bdqn.com,默认首页设置为index.html和index.php。
3.将/usr/share/doc/HTML/zh-CN/目录下的index.html复制到网站根目录下并改名为redhat。
4.在浏览器中分别访问http://www.bdqn.com/redhat与http://www.bdqn.com/,查看不同的测试页面。
在这里我们简单搭建一下DNS
1.配置主DNS修改主配置文件
[root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-*
[root@centos01 ~]# mount /dev/cdrom /mnt/
[root@centos01 ~]# yum -y install bind bind-utils bind-chroot
[root@centos01 ~]# systemctl enable named
[root@centos01 ~]# cp /etc/named.conf /etc/named.conf.bak
[root@centos01 ~]# echo "" > /etc/named.conf
[root@centos01 ~]# vim /etc/named.conf
2.检查主配置文件是否错误
named-checkconf /etc/named.conf
3.创建正向解析文件
vim /var/named/bdqn.com.zone
4.配置两台主机的网卡设置
[root@centos01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
DNS1=192.168.100.10
[root@centos01 ~]# systemctl restart network
[root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
DNS1=192.168.100.10
[root@centos02 ~]# systemctl restart network
[root@centos01 ~]# systemctl start named
[root@centos01 ~]# systemctl enable named
5.使用第二台主机测试一下
[root@centos02 ~]# nslookup www.bdqn.com
[root@centos02 ~]# nslookup centos01.bdqn.com
现在开始我们的实验
1.编译安装htpd服务器,要求支持动态模块扩展、地址重写、多字符集。在配置的过程已经完成.
[root@centos02 ~]# cd /usr/src/httpd-2.2.17/
[root@centos02 httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-cgi --enable-rewrite --enable-charset-list
2.网站名称设置为www.bdqn.com,默认首页设置为index.html和index.php。
2.1.网站名称设置为www.bdqn.com
访问http://www.bdqn.com/
2.2.默认首页设置为index.html和index.php
1)在默认指定网站文件创建一个index.php
[root@centos02 ~]# cd /usr/local/httpd/htdocs/
[root@centos02 htdocs]# vim index.html
<html><body><h1>JiaoXinYuan</h1></body></html>
[root@centos02 htdocs]# touch index.php
[root@centos02 htdocs]# vim index.php
JiaoXinYuan.PHP
2)修改主配置文件
[root@centos02 ~]# vim /usr/local/httpd/conf/httpd.conf
166 DirectoryIndex index.html index.php
3)重启服务
[root@centos02 ~]# systemctl restart httpd
验证:
1.查看index.html
http://www.bdqn.com/index.html
2.查看index.php
http://www.bdqn.com/index.php
3.将/usr/share/doc/HTML/zh-CN/目录下的index.html复制到网站根目录下并改名为redhat。因为这里我发现并没有这个文件,索性我们在网站根目录创建一个redhat并且写入数据redhat
[root@centos02 ~]# cd /usr/local/httpd/htdocs/
[root@centos02 htdocs]# touch redhat
[root@centos02 htdocs]# echo "Redhat" > redhat
[root@centos02 htdocs]# ls
如图:
4.在浏览器中分别访问http://www.bdqn.com/redhat与http://www.bdqn.com/,查看不同的测试页面。
访问:http://www.bdqn.com/redhat
访问:http://www.bdqn.com/
故事很短,道理很长,学无止境,不忘初心,砥砺前行