Ubuntu体系汇集应用效劳器Apache设置基础

 
设置文件
 
官方颁布发表的 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 实行额定的设置
 
*容器都是成对泛起的,所有在容器中应用的设置指令都应该摆设在 <> 和 内,如:
 
……
 
*以上所有带 “Match” 的容器指令与其相应的不带 “Match” 的容器指令功用雷同,只是在描摹资本时可以应用正则表达式
*这些容器还可以遏制嵌套,以遏制更精美的设置
 
此外,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 www.jamond.net
# 对 / 遏制维护
 
# 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
 
 
来自: 新客网(www.xker.com) 详文参考:http://www.xker.com/page/e2007/1010/35655.html


版权声明: 原创作品,核准转载,转载时请务必以超链接情势标明文章 原始来由 、作者信息和本声明。否则将追究司法责任。

原文地址:https://www.cnblogs.com/zgqjymx/p/1975474.html