Linux高级管理——Web网站服务(一)

简介

        在Internet网络环境中,Web服务无疑是最为流行的应用系统。有了 Web站点,企业可以充分展示自己的产品,宣传企业形象。Web站点还为企业提供了与客户交流.电子商务交易平台等丰富的网络应用。部署与维护Web 服务是运维工程师必须掌握的-个技能。

一、Apache 网站服务基础

1.Apache简介

        Apache HTTP Server是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务.在Web服务器领域中长期保持着超过半数的份额。Apache服务器可以运行在Linux、UNIX、Windows等多种操作系统平台中。

1.1 Apache的主要特点

        Apache 服务器在功能.性能和安全性等方面的表现都是比较突出的.可以较好地满足Web服务器用户的应用需求。其主要特点包括以下几个方面。

  • 开放源代码:这是Apache 服务器的重要特性之一,也是其他特性的基础。Apache服务程序由全世界的众多开发者共同维护,并且任何人都可以自由使用,这充分体现了开源软件的精神。
  • 跨平台应用:这个特性得益于Apache的源代码开放。Apache 服务器可以运行在绝大多数软硬件平台上,所有UNIX操作系统都可以运行Apache 服务器,Apache服务器甚至可以良好地运行在大多数Windows 系统平台中。Apache服务器的跨平台特性使其具有被广泛应用的条件。
  • 支持各种Web编程语言:Apache服务器可支持的网页编程语言包括Perl、PHP、 Python,Java等,甚至微软的ASP技术也可以在 Apache服务器中使用。支持各种常用的 Web编程语言使Apache具有更广泛的应用领域。
  • 模块化设计:Apache并没有将所有的功能集中在单一的服务程序内部,而是尽可能地通过标准的模块实现专有的功能,这为Apache 服务器带来了良好的扩展性。其他软件开发商可以编写标准的模块程序,从而添加Apache本身并不具有的其他功能。
  • 运行非常稳定:Apache服务器可用于构建具有大负载访问量的Web站点,很多知名的企业网站都使用Apache 作为Web服务软件。
  • 良好的安全性:Apache服务器具有相对较好的安全性,这是开源软件共同具有的特性。并且,Apache 的维护团队会及时对已发现的漏洞提供修补程序,为Apache 的所有使用者提供尽可能安全的服务器程序。
2. 2 Apache 的主要版本

        Apache服务器目前包括1.X和2.X两个版本,并且对其分别进行维护。两个版本具有一定的差异.也具有各自的特性。

  • 1.X系列的最高版本是1.3,该版本继承了Apache服务器1.0版本以来的优秀特性和配置管理风格,具有非常好的兼容性、稳定性。
  • 从2.0版开始,Apache服务器加入了许多新的功能,使用的配置语法和管理风格也有所改变。对于新构建的网站服务器.使用2.X版本是一个不错的选择.

2.安装httpd服务器

        在配置Apache网站服务之前,需要正确安装好httpd服务器软件。httpd服务器的安装可以选用RPM安装,源码编译安装这两种方式,前者相对比较简单、快速,但是在功能上存在一定的局限性。在实际的生产环境中,使用源码编译安装的方式要更加普遍。

2.1 准备工作

        为了避免发生端口冲突.程序冲突等现象,建议卸载使用RPM方式安装的httpd。

[root@www ~]# rpm -e httpd --nodeps

        Apache的配置及运行需要apr,pcre等软件包的支持,因此应从系统光盘镜像中预先安装这些软件及其开发包(devel),以便提供相应的库和头文件,确保Apache的安装顺利完成。

[root@www Packages]# xpm -ivh apr-1.4.8-3.e17.x86_64.rpm
[root@www Packages]# rpm -ivh apr-devel-1.4.8-3.e17.x86_64.rpm
[root@www Packages]# rpm -ivh cyrus-sasl-devel-2.1.26-20.el7_2.x86_64.rpm
[root@www Packages]# rpm -ivh expat-devel-2.1.0-8.e17.x86_64.rpm
[root@www Packages]# rpm -ivh libdb-deve1-5.3.21-19.e17.x86_64.rpm
[root@www Packages]# rpm -ivh openldap-devel-2,4.40-13.e17.x86_64.rpm
[root@www Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm
[root@www Packages]# rpm -ivh apr-uti1-1.5.2-6.el7.x86_64.rpm
[root@www Packages]# rpm -ivh pcre-devel-8.32-15.e17_2.1.x86_64.rpm
[rootewww Packages]# rpm -ivh pere-8.32-15.el7_2.1.x86__64.rpm
2.2 源码编译及安装

源码编译安装httpd 服务的过程主要包含解包、配置、编译及安装。

1)解包

将下载获得的httpd源码包解压并释放到/usr /src目录下,且切换到展开后的源码目录中。

[root@www ~]#tar zxf httpd-2.4.25.tar.gz -C /usr/src
[root@www ~]#cd /usr/src/httpd-2.4.25/

2)配置

根据服务器的实际应用需要,可以灵活设置不同的定制选项.如指定安装路径、启用字符集支持等。若要获知可用的各种配置选项及其含义,可以执行“./ configure --help”命令,其中“./”表示当前目录。

[root@www httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so--enable-rewrite --enable-charset-lite --enable-cgi

上述配置命令中,各选项的含义如下

  • --prefix:指定将httpd服务程序安装到哪个目录下,如/usr /local /httpd。
  • --enable--so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力。
  • --enable-rewrite:启用网页地址重写功能.用于网站优化及目录迁移维护。
  • --engble-charset-lite:启动字符集支持.以便支持使用各种字符集编码的网页。
  • --enable-cgi:启用CGI脚本程序支持.便于扩展网站的应用访问能力。

3)编译及安装

完成配置以后,执行“make"命令进行编译.将源代码转换为可执行的程序;然后执行"make installM命令完成最后的安装过程;将编译完的htpd程序及相关目录、文件复制到预设的安装目录(由配置时的“——prefix”选项指定)。其中“make”的过程可能会需要较长的时间。

[root@www httpd-2.4.25] # make
[root@www httpd-2.4.25] # make install
2.3 确认安装结果

        由于指定的安装目录为/usr / local/httpd,因此 httpd服务的各种程序.模块.帮助文件等都将复制到此目录下。

[rootwww ~]# ls /usr/local/httpd
bin    cgi-bin  error    icons    logs   manual
build  conf     htdocs   include  man    modules

在安装后的/usr /local /httpd目录下,主要子目录的用途如下:

  • /usr/local/httpd/bin:存放httpd服务的各种执行程序文件,包括主程序httpd、服务控制工具apachectl 等。
  • /usr/local/httpd/cgi-bin:存放各种CG程序文件。
  • /usr/local/httpd/logs:存放httpd 服务的日志文件。
  • /usr/local/httpd/conf:存放httpd 服务的各种配置文件,包括主配置文件 httpd . conf、增强配置子目录extra等。
  • /usr/local/httpd/htdocs:存放网页文档.包括默认首页文件 index , html等。
  • /usr/local/httpd/modules:存放httpd 服务的各种模块文件。
2.4 优化执行路径

        通过源码编译安装的httpd服务,程序路径并不在默认的搜索路径中,为了使该服务在使用时更加方便,可以为相关程序添加符号链接。

[root@www httpd-2.4.25]# 1n -s /usr/local/httpd/bin/* /usr/local/bin
[root@www httpd-2.4.25]# 1s -1 /usr/1ocal/bin/httpd /usr/local/bin/apachect1
lrwxrwxrwx 1 root root 30 Jun 15 07:06 /usr/local/bin/apachectl ->
/usr/local/httpd/bin/apachectl
lrwXlwKrwx 1 root root 26 Jun 15 07:06 /usr/local/bin/httpd ->
/usr/local/httpd/bin/httpd

再执行相关命令时就不用输入冗长的路径了。例如,当执行“httpd --v”命令(用于查看程序版本)时,即相当于执行“/usr /local /httpd/bin/httpd -v”命令。

[ root@www ~]# httpd -v
server version: Apache/2.4.25 (Unix)
server built:   Jun 15 2017 22:19:41
2.5 添加httpd系统服务

        CentOS 7系统下.将编译安装的程序添加为系统服务有两种方式:①通过chkconfig 命令添加为系统服务.然后由systemcti进行管理;②在/lib/systend/system/目录下,手动编写以.service结尾的单元(unit)配置文件。

1)使用chkconfig添加系统服务

若希望将httpd添加为系统服务,以便通过chkconfig 进行管理,需要建立可控的服务脚本。例如,可将apachectl脚本复制为/etc/init.d/httpd,并在文件开头添加chkconfig识别配置,然后将其添加为标准的Linux系统服务。

2)建立[service] .service配置文件

在/lib/systemnd/system/目录下,建立一个以.service结尾的单元(unit)配置文件,用于控制由systemd控制或监控的htpd服务。配置文件主要分为三个部分,控制单元[uhit]的定义、服务[Service]的定义以及安装部分[Install],具体内容如下所示。

配置文件的各配置项的作用如下所示:

  • Description:设置服务单元描述字符串。
  • After:设置服务单元的启动先后顺序。例如,httpd.ervice单元文件中出现“After=network , target”表示启动时先启动network,target,后启动 httpd , service,关闭时顺序相反,与After字段相对应的还有一个Before 字段,如httpd.service单元文件中出现"Before=network , target”表示启动时先启动httpd , service,后启动network,target。
  • Type:设置服务进程的启动类型.需要注意的是,当启动类型为forking时需要同时设置PIDFile配置项,以帮助systemd准确定位到服务的主进程。
  • PIDFile:设置服务的守护进程的PID文件。
  • ExecStart:设置服务启动时执行的命令。
  • ExecReload:设置服务重新加载时执行的命令。
  • KilMode:设置在单元停止时,杀死进程的方法。process表示仅杀死主进程。
  • Restart:设置服务进程正常退出.异常退出.被杀死.超时的时候.是否重启该服务。on一failure表示仅在进程异常退出时重启。
  • RestartSec:设置在重启服务前暂停多长时间,默认值是100毫秒(100ms)。
  • WantedBy:设置该服务所在的Target(运行目标)。WantedBy=graphical target〈图形界面多用户系统)是指, httpd所在的Target 是 graphical , target。这个设置非常重要,因执行“systermctlenable httpd . service”命令时,httpd , service 的符号链接就会放在/etc/systemd/system目录下的graphical , target , wants子目录中。在系统进入graphical , terget运行目标时,该目录下的所有服务均开机启动。该配置项常用的Target除了graphical , target之外.还有multi—user , target(非图形界面多用户系统)。

httpd , service文件编写完成后,执行如下命令设置httpd服务开机启动:

        成功执行上述操作以后,在日常维护过程中.既可以直接使用apachectl工具来控制httpd服务,也可以使用systemctl命令控制httpd服务。例如,当执行“systemctl start httpd,service”命令时,等同于执行“/usr /local/httpd/bin/apachectl start”命令,它们都用来启动httpd 服务器程序。

二、httpd服务器的基本配置

1.Web站点的部署过程

        在CentOS 7系统中,使用httpd 服务部署Web站点的基本过程的如下:

1.1 确定网站名称、IP地址
  • 若要向Internet中发布个Web站点.需要申请一个合法的互联网Р地址,并向DNS服务提供商注册一个完整的网站名称。在企业内部网络中,这些信息可以自行设置。例如,Web主机的P地址为192,168.4.123,网站名称为www.bdqn.com。
  • 当然,若要在客户机的浏览器中通过地址www.bdqn.com来访问此Web站点,还应该有可用的DNS域名服务。例如,客户机所使用的DNS 服务器应能够将 www.bdqn.com 解析为Р地址192.168.4.123。
  • 在Web服务器本机中,将P地址设置为192.168.4.123,将主机名称设置为www.bdqn.com;并修改/etc/hosts文件,添加相应的映射记录以提高本地解析速度。
1.2 配置并启动httpd服务

1)配置httpd 服务

编辑httpd 服务的主配置文件 httpd.conf,查找配置项“ServerName”,在附近添加一行内容"ServiceName www.bdqn.com”,用于设置网站名称。关于httpd.conf 文件中的更多配置项.

修改httpd.coni 文件的配置内容以后,建议使用带“一t”选项的apachectl 命令对配置内容进行语法检查(或使用“httpd -t”命令)。如果没有语法错误.将会显示“Syntax OK”的信息,否则需要根据错误提示信息来修正配置。

[rootwww ~]#apachectl -t
 syntax OK

2)启动httpd服务

使用脚本文件/usr /local/httpd/bin/apachectl,分别通过“start” “stop” “restart”选项进行控制,可用来启动、终止、重启httpd 服务。或者使用systemctl命令控制/lib/ systernd/system/httpd.service配置文件.从而实现对httpd 服务进行控制。正常启动httpd服务以后,默认将监听TCP协议的8D端口。

[ root@www~]# systemctl start httpd
[ root@www~]# netstat -anpt | gxep httpd
tep6     0   0  :::80    :::*        LISTEN     68130/ httpd
1.3 部署网页文档

        对于新编译安装的httpd服务.网站根目录位于/usr / local/httpd/htdocs下,需要将Web站点的网页文档复制或上传到此目录下。httpd服务器默认已提供了一个名为index, html的测试网页(可显示字串“lt works ! "),作为访问网站时的默认首页。

[root@www ~ ]#cat /usr/local/httpd/htdocs/index.html
<html><body><h1>It works!</h1></body></html>
1.4 在客户机中访问 Web 站点

        在客户机的网页浏览器中,通过域名或Р地址访问httpd服务器.将可以看到Web站点的页面内容。若使用的是httpd服务默认的首页,则页面会显示“lt works  ”.如图1.1所示,表示httpd服务已经正常运作。

注:若想通过域名访问httpd服务器,需要在客户机上指定DNS 服务地址或在hosts 文件中增加httpd服务器IP地址的解析记录,以达到地址解析的目的,才可以通过域名访问httpd服务器。

1.5 查看Web站点的访问情况

        httpd 服务器使用了两种类型的日志:访问日志和错误日志。这两种日志的文件名分别为access_log 和error_log,均位于/usr / local /httpd / logs目录下。

        通过查看访问日志文件 access_log,可以及时了解Web站点的访问情况。访问日志中的每行对应一条访问记录.记录了客户机的P地址、访问服务器的日期和时间、请求的网页对象等信息。例如,当从客户机192.168,4,110访问 Web站点以后,访问日志将会记录“192.168,4,110……'GET ╱HTTP/1 .1'……”的消息。

        通过查看错误日志文件error_log,可以为排查服务器运行故障提供参考依据。错误日志文件中的每行对应一条错误记录,记录了发生错误的日期和时间、错误事件类型、错误事件的内容描述等信息。

        上述过程是使用httpd 服务器部署并验证Web站点的基本步骤,其中涉及httpd.conf配置文件的改动量非常少.要搭建一台简单的Web 服务器还是十分容易的。

2.httpd.conf 配置文件

        若要对We站点进行更加具体,更加强大的配置.仅仅学会添加“ServerName”配置项显然是远远不够的,还需要进一步熟悉httpd.conf 配置文件,了解其他各种常见的配置项。

        主配置文件htpd.conf由注释行,设置行两部分内容组成。与大多数Linux配置文件一样,注释性的文字以“#”开始.包含了对相关配置内容进行的说明和解释。除了注释行和空行以外的内容都是配置行,构成了Web服务的有效配置。根据配置所作用的范围不同,设置行又可分为全局配置、区域配置。

2.1 全局配置项

        全局配置决定httpd服务器的全局运行参数.使用“关键字值”的配置格式。例如,配置网站名称时使用的“ServerName www , bdqn .com”,其中“ServerName”为配置关键字,而“www ,bdqn.com'为对应的值。

        每条全局配置都是一项独立的配置.不需要包含在其他任务区域中。以下列出了httpd,.conf 文件中最常用的一些全局配置项。

在上述设置行中.各全局配置项的含义如下:

  • ServerRoot:设置httpd 服务器的根目录.该目录下包括了运行Web站点必需的子目录和文件。默认情况下,httpd 服务器的根目录为 httpd的安装目录。因此本章中默认的根目录为/ust /local/httpd,与编译安装时所指定的httpd安装目录相同。在 httpd.conf 配置文件中,如果指定目录或文件位置时不使用绝对路径.则该目录或文件位置都认为是在服务器的根自录下。
  • Listen:设置httpd服务器监听的网络端口号,默认为80。
  • User:设置运行httpd进程时的用户身份,默认为daemon。
  • Group:设置运行httpd进程时的组身份,默认为daemon。
  • ServerAdmin:设置httpd 服务器的管理员E-mail 地址.可以通过此E一mail地址及时联系Web站点的管理员。
  • ServerName:设置Web站点的完整主机名(主机名+域名)。
  • DocumentRoot:设置网站根目录,即网页文档在系统中的实际存放路径。此配置项比较容易和ServerRoot混淆,需要格外注意。
  • Directorylndex:设置网站的默认索引页(首页),可以设置多个首页文件,以空格分开,默认的首页文件为index.html。
  • ErrorLog:设置错误日志文件的路径,默认路径为logs / error_log。
  • LogLevel:设置记录日志的级别,默认级别为warn(警告)。
  • CustomLog:设置访问日志文件的路径.日志类型,默认路径为logs/access_log,使用的类型为common(通用格式)。
  • PidFile:设置用于保存 httpd进程号(PID)的文件,默认保存地址为logs/httpd.pid,logs目录位于Apache的服务器根目录下。
  • AddDefaultCharset:设置站点中的网页默认使用的字符集编码,如utf-8、gb2312等。
  • Include:包含另一个配置文件的内容,可以实现将一些特殊功能的配置放到一个单独的文件中,再使用lnclude配置项将其包含到httpd.conf 文件中,这样便于独立进行配置功能的维护而不影响主配置文件。
2.2 区域配置项

        除了全局配置项以外, httpd ,conf 文件中的大多数配置是包括在区域中的。区域配置使用--对组合标记,限定了配置项的作用范围。例如,最常见的目录区域配置的形式如下所示。

        在以上区域定义中,设置了一个根目录的区域配置,其中添加的访问控制相关配置只对根目录有效,而不会作用于全局或其他目录区域。需要注意的是,这里所说的根目录是指设置htpd服务器的根目录(ServerRoot 所设置的值),而不是CentOS系统的根目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值