Apache网站服务基础

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.安装httpd服务器

在配置 Apache 网站服务之前, 需要正确安装好 httpd 服务器软件。 httpd 服务器的安装可以选用 RPM 安装、 源码编译安装这两种方式, 前者相对比较简单、 快速, 但是在功能上存在一定的局限性。 在实际的生产环境中, 使用源码编译安装的方式要更加普遍。本小节将以下载的源码包httpd-2.4.25.tar.gz 为例, 介绍 httpd 服务的定制安装过程。

2.1准备工作

为了避免发生端口冲突、 程序冲突等现象, 建议卸载使用 RPM 方式安装的 httpd。httpd 服务编译安装时需要依赖 apr-util-devel、 pcre-devel 等软件, 因此在 httpd 编译安装之前需要先安装依赖软件。

[root@localhost ~]# rpm -e httpd --nodeps
错误:未安装软件包 httpd 
[root@localhost ~]# yum install -y apr -util-devel pcre-devel

2.2源码编译及安装

解包

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

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

配置

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

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

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

–prefix: 指定将 httpd 服务程序安装到哪个目录下, 如/usr/local/httpd。

–enable-so: 启用动态加载模块支持, 使 httpd 具备进一步扩展功能的能力。

–enable-rewrite: 启用网页地址重写功能, 用于网站优化及目录迁移维护。

–enable-charset-lite: 启用字符集支持, 以便支持使用各种字符集编码的网页。

–enable-cgi: 启用 CGI 脚本程序支持, 便于扩展网站的应用访问能力。

编译及安装

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

[root@localhost httpd-2.4.25]# make && make install

2.3确认安装结果

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

[root@localhost httpd-2.4.25]# ls /usr/local/httpd
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules

在安装后的/usr/local/httpd 目录下包含 httpd 服务相关的各种子目录, 主要子目录的用途如下。

/usr/local/httpd/bin: 存放 httpd 服务的各种可执行程序文件, 包括主程序 httpd、 服务控制工具 apachectl 等

usr/local/httpd/conf: 存放 httpd 服务的各种配置文件, 包括主配置文件 httpd.conf、增强配置子目录 extra 等

/usr/local/httpd/htdocs: 存放网页文档, 包括默认首页文件 index.html 等

/usr/local/httpd/logs: 存放 httpd 服务的日志文件

/usr/local/httpd/modules: 存放 httpd 服务的各种模块文件

/usr/local/httpd/cgi-bin: 存放各种 CGI 程序文件

2.4优化执行路径

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

[root@localhost httpd-2.4.25]# ln -s /usr/local/httpd/bin/* /usr/local/bin
[root@localhost httpd-2.4.25]# ls -l /usr/local/httpd/ /usr/local/bin/apachectl 
lrwxrwxrwx.  1 root root  30 1月   2 11:08 /usr/local/bin/apachectl -> /usr/local/httpd/bin/apachectl

/usr/local/httpd/:

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

[root@localhost httpd-2.4.25]# httpd -v
Server version: Apache/2.4.25 (Unix)
Server built:   Jan  2 2024 11:05:13

2.5添加httpd系统服务

在/lib/systemd/system/目录下, 建立一个以.service 结尾的单元(unit) 配置文件,用于控制由 Systemd 管理或监控的 httpd 服务。

[root@localhost httpd-2.4.25]# cd /lib/systemd/system/
[root@localhost system]# cat httpd.service 
[Unit]
Description=The Apache HTTP Server
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=graphical.target
[root@localhost system]# systemctl enable httpd.service 
Created symlink from /etc/systemd/system/graphical.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@localhost system]# systemctl is-enabled httpd.service
enabled


成功执行上述操作后, 在日常维护过程中, 可直接使用 apachectl 工具或 systemctl命令控制 httpd 服务。

3.httpd服务器的基本配置

熟悉了 httpd 服务器的安装过程及主要目录结构之后, 本节将进一步介绍使用 httpd服务来架设 Web 站点的基本过程及常见配置。

3.1Web站点的部署过程

在 CentOS 7.3 系统中, 使用 httpd 服务部署 Web 站点的基本过程分析如下。

1.配置并启动httpd服务

配置httpd服务

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

[root@localhost system]# vim /usr/local/httpd/conf/httpd.conf 
....
ServerName www.kgc.com

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

[root@localhost system]# httpd -t
Syntax OK

启动httpd服务

使用 systemctl 命令启动 httpd 服务。 正常启动 httpd 服务以后, 默认将监听 TCP协议的 80 端口。

[root@localhost system]# systemctl start httpd
[root@localhost system]# netstat -anpt | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      88358/httpd         

2.部署网页文档

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

[root@localhost system]# cat /usr/local/httpd/htdocs/index.html 

It works!

3.在客户机访问Web站点

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

4.查看Web站点的访问情况

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

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

[root@localhost system]# tail /usr/local/httpd/logs/access_log 
192.168.25.1 - - [02/Jan/2024:11:51:21 +0800] "GET / HTTP/1.1" 200 45
192.168.25.1 - - [02/Jan/2024:11:51:21 +0800] "GET /favicon.ico HTTP/1.1" 404 209

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

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

你可能感兴趣的:(linux,apache,http)