Apache服务器配置文件

来自CloudWiki
跳转至: 导航搜索

Apache基本配置

以下介绍httpd.conf文件中几个基本配置:

vi /etc/httpd/conf/httpd.conf

ServerRoot:设置根目录的路径

 Apache服务器根目录是指Apache存放配置文件和日志文件的目录,默认情况下根目录位于“/etc/httpd”。根目录下一般包含conf和logs子目录。命令如下:
  ServerRoot  “/etc/httpd”

Listen:设置监听IP地址及端口号

该参数设置web服务器监听客户端web请求的本机IP和端口号命令如下: Listen 80 Listen 192.168.18.100:8080

一般将该参数设为本服务器的某块网卡的IP地址及对应Web服务器的端口。


ServerAdmin:设置系统管理员E-mail

当客户端访问服务器发生错误时,服务器通常会向客户端返回错误提示网页,为了便于排除错误,这个网页中通常包含有系统管理员的E-mail地址。可使用ServerAdmin设置管理员的E-mail,例如: ServerAdmin admin@sdcet.cn

ServerName:设置服务器主机名称

参数ServerName可使服务器识别自身的信息,如果服务器有域名,则该参数设为服务器域名,如果没有域名则填入服务器的IP地址。命令如下:

ServerName  www.sdcet.cn:8080

或:

ServerName  192.168.18.100:8080


DocumentRoot:设置web站点主目录的路径

该参数指明web站点主目录的默认路径,需要发布的网页一般都放在这个目录下。为了方便管理和使用,每个web站点都有一个自己的主目录路径。例如,sdcet站点的主目录路径为:

DocumentRoot  “/var/www/html”

DirectoryIndex:设置web站点默认主页

在一般情况下,web站点的默认主页文件名由DirectoryIndex配置参数定义,Apache的默认主页文件名为index.html,用户也可以将DirectoryIndex的参数值修改为其他文件:

DirectoryIndex  index.html  index.html.var

AddDefaultCharset:设置默认字符集

AddDefaultCharset选项定义了服务器返回给客户机的默认字符集。Apache默认字符集是UTF-8,当客户端访问中文网页时会出现乱码现象。解决的办法就是将默认字符集改为GB2312,如下例所示:

AddDefaultCharset  GB2312

Apache服务器的配置

对Apache服务器的配置,主要是通过编辑Apache的主配置文件httpd.conf来实现的,主配置文件在/etc/httpd/conf目录下。修改httpd.conf文件后,必须重新启动httpd服务,所做的修改才能够生效。

httpd.conf是一个文本文件。

httpd.conf配置文件主要由三个部分组成,分别是全局环境变量(Global Enviroment)、主服务器配置(Main server configuration)和虚拟主机设置(Virtual Hosts)。

Apache服务器的主配置文件是httpd.conf,该文件不区分大小写,在该文件中以“#”开始的行为注释行。除了注释和空行外,其他行为指令。指令又分为类似于shell的命令和伪HTML标记。httpd.conf文件主要由以下三部分组成:

  • 全局环境配置
  • 主服务器配置
  • 虚拟主机配置


全局环境配置

全局环境配置,用于配置服务器进程的全局参数。该部分从Section 1:Global Environment开始

(1)Server Tokens OS:当服务器响应主机头(header)信息时显示Apache的版本和操作系统名称。

(2)ServerRoot "/etc/httpd":设置存放服务器的配置、出错和记录文件的根目录。

(3)PidFile run/httpd.pid:指定记录httpd守护进程的进程号的PID文件。

(4)Timeout 120:设置客户程序和服务器连接的超时时间间隔。

(5)KeepAlive Off:设置是否允许在同一个连接上传输多个请求,取值为on/off。

(6)MaxKeepAliveRequests 100:设置一次连接可以进行的HTTP请求的最大次数。

(7)KeepAliveTimeout 15:设置一次连接中的多次请求传输之间的时间。

(8)Listen 12.34.56.78:80:设置Apache服务的监听IP和端口。

(9)LoadModule 参数值:设置动态加载模块。

(10)Include conf.d/*.conf:将由Serverroot参数指定的目录中的子目录conf.d中的*.conf文件包含进来,即将/etc/httpd/conf.d目录中的*.conf文件包含进来。


主服务器配置

这一部分从Section 2开始,他为所有虚拟主机提供了默认值。

(1)User apache和Group apache:设置运行Apache服务器的用户和组。

(2)ServerAdmin root@localhost:设置管理Apache服务器的管理员的邮件地址。

(3)ServerName new.host.name:80:设置服务器的主机名和端口以标识网站。

(4)DocumentRoot “/var/www/html”:设置Apache服务器对外发布的网页文档的存放路径。

(5)Directory目录容器:Apache服务器可以利用Directory容器设置对指定目录的访问控制。

(6)DirectoryIndex index.html index.html.var:用于设置网站的默认首页的网页文件名。

(7)AccessFileName .htaccess:设置访问控制的文件名,默认为隐藏文件.htaccess。


虚拟主机配置

通过配置虚拟主机,可以在单个服务器上运行多个Web站点。虚拟主机可以是基于IP地址、主机名或端口号的。

  • 基于IP地址的虚拟主机需要计算机上配有多个IP地址,并为每个Web站点分配一个惟一的IP地址。
  • 基于主机名的虚拟主机,要求拥有多个主机名,并且为每个Web站点分配一个主机名。
  • 基于端口号的虚拟主机,要求不同的Web站点通过不同的端口号监听,这些端口号只要系统不用就可以。


httpd.conf文件中关于虚拟主机部分的默认配置:

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /www/docs/dummy-host.example.com
    ServerName dummy-host.example.com
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>


容器指令

容器指令(container directive)的用途

可以在容器指令内配置不同对象的各种访问控制

容器指令的语法

包括在<>……</>括号内

常用的容器指令有:

<Directory>……</Directory>
<Files>……</Files>
<Location>……</Location>
<VirtualHost>……</VirtualHost>
访问控制选项	描述
options	设置如何访问控制文件
allowoverride	设置特定目录中的配置
order	设置apache默认的访问权限及allow和deny语句的处理顺序
allow	设置允许访问apache服务器的主机
deny	设置拒绝访问apache服务器的主机


条件指令<IfDefine>和<IfModule>不是容器指令,他们是例外。


Options属性

Options可以组合设置下列选项:

All:用户可以在此目录中作任何事情。

FollowSymLinks:服务器可使用符号链接指向的文件或目录。

Indexes:允许目录访问,当访问的目录中没有directoryindex参数指定的网页时,会列出目录中的目录清单

None:不允许访问此目录。


AllowOverride

AllowOverride会根据设定的值决定是否读取目录中的.htaccess文件,来改变原来所设置的权限。

All:读取.htaccess文件的内容,修改原来的访问权限。

None:不读取.htaccess文件

为避免用户自行建立.htaccess文件修改访问权限,http.conf文件中默认设置每个目录为: AllowOverride None。

Allow

设定允许访问Apache服务器的主机

Allow from all

允许所有主机的访问

Allow from 202.96.0.97 202.96.0.98

允许来自指定IP地址主机的访问


Deny

设定拒绝访问Apache服务器的主机

Deny from all

拒绝来自所有主机的访问

Deny from 202.96.0.99 202.96.0.88

拒绝指定IP地址主机的访问


Order

Order allow,deny

Order用于指定allow和deny的先后次序。

范例:

Order deny,allow
Deny from all
Allow from 202.96.0.97
或者
Order allow,deny
Allow from all
Deny from 202.96.0.97

返回 Linux基础