配置文件
官方发布的 Apache 的主配置文件是 httpd.conf, 服务器还会读取一个包含 MIME 文件类型的文件,其文件名由 TypesConfig 指令确定,默认值是mime.types 。
Ubuntu/Debian 下的 Apache 的主配置文件是 /etc/apache2/apache2.conf, 包含 MIME 文件类型的文件是 /etc/mime.types 。
此外,为了按逻辑分割配置,还可以用 Include 指令和通配符附加许多其他配置文件。Ubuntu 下附加了如下的配置文件:
# 包含动态模块的配置:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
# 包含用户自己的配置:
Include /etc/apache2/httpd.conf
# 包含端口监听的配置:
Include /etc/apache2/ports.conf
# 包含一般性的配置语句片断:
Include /etc/apache2/conf.d/[^.#]*
# 包含虚拟主机的配置指令:
Include /etc/apache2/sites-enabled/[^.#]*
配置文件的语法
每一行包含一个指令,在行尾使用反斜杠”\”可以表示续行,配置文件中的指令不区分大小写,但是指令的参(argument) 通常区分大小写以 ”#” 开头的行被视为注解并在读取时被忽略。注解不能出现在指令的后边空白行和指令前的空白字符将在读取时被忽略,因此可以采用缩进以保持配置层次的清晰
无论是主配置文件还是用 Include 语句包含的配置文件,都应该遵从 Apache 的配置语法。
Apache 的模块
Apache 是模块化的服务器,它有两种编译方式:
静态编译:将核心模块和所需要的模块一次性编译
o
优点:运行速度快
o
缺点:要增加或删除模块必须重新编译整个 Apache
*
动态编译:只编译核心模块和 DSO (动态共享对象)模块 — mod_so
o
优点:各模块可以独立编译,并可随时用 LoadModule 指令加载,用于特定模块的指令可以用 指令包含起来,使之有条件地生效。
o
缺点:运行速度稍慢
Ubuntu 中的 Apache 是动态编译的。在 Ubuntu 下配置模块:
1.视需要修改 mods-available/ 目录下相关模块的配置文件
2.使用 a2enmod 命令启用模块; 使用 a2dismod 命令停用模块
例如: 启用 rewrite 模块可以用如下命令:
sudo a2enmod rewrite
停用 cgi 模块可以用如下命令:
sudo a2dismod cgi
指令的作用域
从指令的作用域来划分,Apache 中有两类指令:
普通指令:普通指令对整个服务器都有效
容器指令:可以放置在容器内对特定的访问资源实施额外的配置,它只对特定的访问资源有效
Apache 中常用的容器包括:
用于对指定的目录实施额外的配置
用于对指定的文件实施额外的配置
用于对指定的 URL 实施额外的配置
容器都是成对出现的,所有在容器中使用的配置指令都应该放置在 <> 和 内.
这些容器还可以进行嵌套,以进行更精细的配置
此外,Apache 还具备同时支持多个站点的能力,称为虚拟主机。放置在 容器中的指令仅对特定虚拟主机有效。
虽然大多数指令可以包含在任意的容器中,但是也用特例。要查询一个指令可以被应用于哪些配置段中,可以在 Apache 手册中查看该指令的 作用域 项。
基于目录的配置文件
Apache 除了使用主配置文件之外,还可以使用分布在整个网站目录树中的特殊文件来进行分散配置。这样的特殊配置文件称为基于目录的配置文件, 这些特殊的文件通常叫 .htaccess ,但是也可以用 AccessFileName 指令来改变它的名字。
显然,基于目录的配置文件 (.htaccess 文件)中指令的作用域是存放它的那个目录及其所有子目录。
*
.htaccess 文件的语法与主配置文件相同。放在 容器中的指令都可以出现在 .htaccess 文件中,具体能出现哪些指令由主配置文件中的 AllowOverride 指令来决定
*
由于客户对服务器的每次访问请求都会读取.htaccess文件,所以对这些文件的修改会立即生效,即无需使服务器加载配置文件或重新启动。
基本配置指令
服务器标识指令
*
ServerName : 服务器用于辨识自己的主机名和端口号
*
ServerAdmin : 服务器返回给客户端的错误信息中包含的管理员邮件地址
*
ServerSignature : 配置服务器生成页面的页脚(错误信息、mod_proxy的ftp目录列表、mod_info的输出)
*
ServerTokens : 控制了服务器回应给客户端的”Server:“应答头是否包含关于服务器操作系统类型和编译进的模块描述信息
*
UseCanonicalName : 决定 Apache 如何构造 URL 中 SERVER_NAME 和 SERVER_PORT 的指令。
文件定位指令
*
DocumentRoot : 组成网络上可见的主文档树的根目录
*
ErrorLog : 存放错误日志的位置
*
LockFile : 当 AcceptMutex 指令的值是 fcntl 或 flock 的时候,Apache 使用的锁文件的位置
*
PidFile : 设置服务器用于记录父进程(监控进程) PID 的文件。
*
ScoreBoardFile : 存储子进程协调数据(coordination data)的文件(Apache 使用 scoreboard 在父进程和子进程之间进行通信)
*
ServerRoot : 指定服务器安装的基础目录
收紧 Ubuntu 下的 Apache 配置
对于实际的产品服务器,应该首先收紧 Apache 的配置。为此可以在 /etc/apache2/conf.d/ 目录下创建一个新的 local_configs.conf 文件添加如下的配置:
/etc/apache2/conf.d/local_configs.conf
# 设置 ServerName
ServerName
# 对 / 进行保护
# Forbid default access to file system locations
Order Deny,Allow
Deny from all
# prevent use of .htaccess files in all directories
# apart from those specifically enabled.
AllowOverride None
# 限制显示服务器的可用信息
ServerSignature Off
ServerTokens production
Apache 的管理工具
Apache 套件中包含了许多可执行程序,其中一部分是管理工具,本节仅介绍 apache2ctl。
apache2ctl
apache2ctl 是 Apache2 服务器的前端程序。他可以帮助管理员控制 Apache2 后台守护进程的功能。
apache2ctl脚本有两种操作模式:
*
作为简单的 apache2 的前端程序,设置所有必要的环境变量,然后启动 apache2,并传递所有的命令行参数。
*
作为 SysV 初始化脚本,接受简单的一个单词的参数,如:start, restart, stop ,并把他们翻译为适当的信号发送给 apache2 。
*
在 Ubuntu 的 Apache2 启动脚本 /etc/init.d/apache2 中,就是调用 apache2ctl 实现控制的。
apache2ctl 有两种语法格式:
apache2ctl -参数
apache2ctl 动作选项
使用 apache2ctl 的命令参数
*
显示 apache 的版本
apache2ctl -v
*
显示 apache 的版本和编译参数
apache2ctl -V
*
输出一个可用的命令行选项的简要说明
apache2ctl -h
*
输出一个静态编译在服务器中的模块的列表。它不会列出使用 LoadModule 指令动态加载的模块
apache2ctl -l
*
输出一个指令的列表,并包含了各指令的有效参数和使用区域
apache2ctl -L
*
仅对配置文件执行语法检查。。如果还指定了”-D DUMP_VHOSTS”,则会显示虚拟主机配置的详细信息
apache2ctl -t
*
显示从配置文件中读取并解析的设置结果 (目前仅显示虚拟主机的设置)
apache2ctl -S
使用 apache2ctl 的动作选项
*
启动 apache2 后台守护进程。如果已经启动,则产生一个错误。
apache2ctl start
*
停止 apache2 后台守护进程。
apache2ctl stop
*
重新启动 apache2 后台守护进程。如果守护进程尚未运行,则启动它。在重新启动守护进程之前,此命令会使用 configtest 自动检查配置文件,以确保 Apache 不会死掉。
apache2ctl restart
*
显示一个简要的状态报告。
apache2ctl status
*
优雅地重新启动 apache2 后台守护进程。如果守护进程尚未启动,则启动它。它和标准重新启动的不同之处在于:不会中断当前已经打开的连接,也不会立即关闭日志。这意味着,如果在日志滚动脚本使用它,则在处理日志之前必须加入一个实实在在的延迟,以确保老的日志文件在被处理前已经关闭。在重新启动守护进程之前,此命令会使用 configtest 自动检查配置文件,以确保 apache 不会死掉。
apache2ctl graceful
*
优雅地停止 apache2 后台守护进程。它和标准停止的不同之处在于:不会中断当前已经打开的连接,也不会立即关闭日志。
apache2ctl graceful-stop
*
执行一次配置文件语法检查。它解析配置文件,并报告 Syntax Ok 或者是特定的语法错误详细信息。
apache2ctl configtest
分享到:
相关推荐
在Ubuntu系统上搭建Apache服务器是一项基础且重要的任务,它能够让你的计算机成为一个Web服务器,用于发布网站、托管应用程序或者提供内部网络服务。Apache是世界上最流行的Web服务器软件,它开源、稳定且功能强大,...
标题中的“Linux (Ubuntu) 下 Apache 服务器的搭建”指的是在Ubuntu操作系统环境下配置Apache HTTP服务器的过程。Apache HTTP服务器是一款开放源代码的Web服务器,因其稳定性、高效性和跨平台性而广受欢迎,尤其在...
Ubuntu 18.04 Server提供了一系列服务器级的应用和服务,如Apache、MySQL、Nginx等,你可以根据业务需求安装和配置这些服务,搭建高效稳定的服务器环境。 总之,安装Ubuntu 18.04 Server无桌面版需要细心操作,尤其...
Linux(Ubuntu)下 Apache 服务器的搭建实用 本文档主要讲述了在 Linux(Ubuntu) 环境下搭建 Apache 服务器的步骤和详细过程。Apache 是一个自由开源的 Web 服务器软件,具有高效、稳定、安全、免费等特点,广泛应用于...
通过这次课程设计,学生不仅学习了DNS服务器和Web服务器的工作原理,还实践了在Ubuntu操作系统上的实际配置,从而增强了对网络服务管理的理解和应用能力。这不仅有助于理论知识的巩固,也有利于培养解决实际问题的...
【Apache服务器在Linux(Ubuntu)下的搭建】 Apache服务器是一款广泛应用的开源Web服务器,以其高效、稳定、安全和免费的特点闻名。起源于NCSAhttpd,Apache通过不断更新和优化,已经成为全球最受欢迎的Web服务器...
在Ubuntu上搭建Web服务器是一项基础但关键的技能,尤其对于那些希望在Linux环境下部署网站或应用的开发者来说。本文将详细解析如何在Ubuntu系统中构建一个功能完备的Web服务器,涵盖从安装Apache到配置PHP环境的全...
本文旨在详细介绍如何在 Ubuntu 8.04 服务器上进行有效的配置和优化,特别是针对 J2EE 应用环境下的 Apache2、Tomcat5.5、MySQL、LDAP 和 mod-jk 等软件。这些配置将有助于提高系统的稳定性和性能。 #### 一、...
本教程将深入探讨Apache2.2的应用及其配置。 1. **安装与启动** - 安装Apache2.2通常涉及下载源码或使用操作系统提供的包管理器(如在Ubuntu上使用`apt-get install apache2`)。 - 启动Apache服务器,可以运行`...
总结来说,要在Ubuntu上用Apache2搭建基于域名的web服务器,你需要安装Apache2,创建并配置服务器文件,设置网站目录,更新客户端的hosts文件,以及进行必要的网络和安全设置。这个过程虽然涉及多个步骤,但是一旦...
在Ubuntu环境下搭建多种服务器是一项对IT专业人士至关重要的技能,尤其对于初学者来说,这是一条探索网络服务管理和运维的入门之路。本教程涵盖了多种服务器类型,包括DHCP、PPTP、L2TP、PPPOE和APACHE,旨在帮助...
在IT行业中,网络服务器配置与应用是至关重要的领域,它涉及到网络服务的搭建、管理和优化,以确保数据的高效传输和系统的稳定运行。本部分将深入探讨网络服务器配置的关键环节和常见应用,以便更好地理解这一主题。...
6. **启用SSL**:安装`openssl`和`ssl-cert`,创建SSL证书,修改Apache配置以支持HTTPS。 完成上述步骤后,你将拥有一个配置了SSL安全和LDAP认证的Ubuntu SVN服务器,允许团队成员通过HTTP/HTTPS安全地访问和操作...
2. 应用服务器:Tomcat,支持Java应用,处理动态内容如JSP和Servlet。 3. 数据库服务器:MySQL,存储教学数据,如课程信息、学生资料、成绩等。 4. Java SDK:J2SDK,提供Java开发环境,支持服务器端的Java编程。 5....
Apache 2.4 是一款广泛使用的开源Web服务器,它提供了丰富的功能和模块,其中包括限速功能,这在保护服务器资源、防止DDoS攻击以及优化网络流量管理等方面具有重要意义。在Ubuntu服务器上配置Apache 2.4的限速功能...
根据提供的文件信息,我们可以从《Ubuntu服务器指南》中提炼出一系列关键知识点,这些知识点主要围绕着如何在Ubuntu系统上安装和配置服务器应用展开。以下是基于标题、描述、标签及部分内容整理的知识点概述: ### ...
总结,Linux下Apache的安装和配置涉及到以下几个关键步骤:安装Apache软件包,启动并设置服务开机启动,配置主要的Apache设置,创建和启用虚拟主机,以及调整防火墙规则。这些步骤将帮助你构建起一个基础的Web服务器...
Apache HTTPS服务器搭建是一个重要的网络安全实践,它通过使用SSL/TLS协议提供加密通信,确保网站数据在传输过程中的安全。本文将深入探讨如何配置Apache HTTP服务器以支持HTTPS服务,包括安装Apache、获取SSL证书、...
4. **网络配置**:优化网络设置,如调整TCP/IP参数,设置DNS解析,配置负载均衡和高可用性集群(如Heartbeat或Keepalived),以及使用NAT、SNAT或DNAT规则实现网络服务的转发。 5. **软件包管理**:熟练使用包管理...