测试 Apache HTTP 服务器
我们可以通过将本地系统上的浏览器指向 http://localhost 来确认 Apache 正在运行,如下图所示。
我们还可以将浏览器指向 http://,后跟服务器的 IP 公共地址或者我们在配置文件中指定的 ServerName 指令。
要测试实际内容的显示,请在 DocumentRoot 指令指定的目录(默认目录为 /var/www/html )中创建一个名为 index.html 的 HTML 文件。
Apache 会自动显示此目录中的 index.html 文件(如果存在)。
安装Apache
要将系统配置为 Web 服务器,请先安装 httpd 软件包。
# yum install httpd
使用 systemctl 实用程序使 HTTP 守护程序能够在引导时启动并立即启动该守护程序。
# systemctl enable httpd Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. # systemctl start httpd
Apache 容器
Apache 容器是对其他指令进行分组的特殊配置指令。
容器使用 XML 样式的标签,这意味着容器的开头是 <name>,结尾是 </name>。
httpd.apache.org/docs/current/sections.html 提供了所有容器指令的索引。
CentOS/RHEL 7 中的新 apachectl 子命令
CentOS/RHEL 7 中提供了新的 apachectl 子命令。
以下示例使用 configtest 子命令检查配置是否存在可能的错误。
# apachectl configtest
使用优雅子命令重新加载配置而不影响活动请求。
# apachectl graceful
Apache HTTP 服务器
Apache HTTP Server,一种由 Apache 软件基金会开发的开源 Web 服务器。
Apache 服务器用于托管 Web 内容。
它响应来自 Web 浏览器(例如 Internet Explorer 和 Firefox)的内容请求。
注意:该帖子使用 RHEL/CentOS 7 发行版来安装和配置 Apache 服务器。
尽管启动/停止/安装命令可能有所不同,但所有 linux 发行版中的配置步骤都相同
Apache的配置文件
Apache 的主要配置文件是 /etc/httpd/conf/httpd.conf 。
还存在一个辅助目录 /etc/httpd/conf.d 来存储包含在主配置文件中的配置文件。
加载模块的配置文件位于 /etc/httpd/conf.modules.d 目录中。
配置 Apache
Apache 的主要配置文件是 /etc/httpd/conf/httpd.conf 。
Apache 以安装方式运行,但我们可以修改此文件中的配置指令以针对环境自定义 Apache。
其中一些指令在下面的帖子中进行了描述。
Apache HTTP 服务器——最常用的配置指令
Apache 虚拟主机
Apache 支持虚拟主机,这意味着单个 Apache 服务器可以响应指向多个 IP 地址或者主机名的请求。
每个虚拟主机都可以提供内容并进行不同的配置。
我们可以通过两种方式配置虚拟主机:
- 基于IP的虚拟主机(host-by-IP)
- 基于名称的虚拟主机(host-by-name)
host-by-IP
使用 host-by-IP,每个虚拟主机都有自己的 IP 地址和端口组合。
Apache Web 服务器响应主机解析为的 IP 地址。
由于安全套接字层 (SSL) 协议中的限制,需要使用 Host-by-IP 来处理 HTTPS 请求。
host-by-name
使用 host-by-name,所有虚拟主机共享公共 IP 地址。
Apache 通过将请求中的主机名映射到特定虚拟主机的配置文件中的 ServerName 和 ServerAlias 指令来响应请求。
使用 <VirtualHost host-name> 容器实现虚拟主机。
在定义第一个 VirtualHost 之后,Apache 提供的所有内容也必须移动到虚拟主机中。
以下示例是一个简单的基于名称的虚拟主机配置:
<VirtualHost *:80> ServerName example1.com ServerAlias www.example1.com DocumentRoot /var/www/example1 ErrorLog example1.error_log </VirtualHost> <VirtualHost *:80> ServerName example2.com ServerAlias www.example2.com DocumentRoot /var/www/example2 ErrorLog example2.error_log </VirtualHost>