apacheserver全局配置具体解释

server标识相关指令:

ServerName

ServerAdmin

ServerSignature

ServerTokens

UseCanonicalName

UseCanonicalPhysicalPort

ServerAdmin和ServerTokens指令控制有关server的哪些信息将出如今server生成的文档中(如错误消息)。ServerTokens指令设置serverHTTP响应头字段的值。

ServerName、UseCanonicalName、 UseCanonicalPhysicalPort指令用来决定如何构建自引用URL,譬如。某client对一个文件夹发出请求,但没有包括文件夹名最后的斜线"/",Apache将重定向client到包括"/"的全名。以使client能够正确解析文档中的相对引用。

ServerName指令

语法:ServerName [scheme://] FQDN [:port]

这个指令用来设置server用于辨识自己的主机名和port号。主要用于创建重定向URL。

比如,你的webserver的主机名为example.bob.com,但你的webserver同一时候在DNSserver中拥有一个DNS别名www.bob.com。而你希望webserver更显著一点,你能够在http.conf中使用ServerName指令来实现:

ServerName www.bob.com:80

当没有指定ServerName时,server会尝试对IP地址进行反向查询来判断主机名。假设在ServerName中没有指定port号,server会监听全部port。为了加强可靠性和可预測性,应该使用ServerName显示的指定一个主机名和port号。

假设使用的是基于域名的虚拟主机,在<VirtualHost>段中的ServerName将是为了匹配这个虚拟主机,在“Host:”请求头中必须写主机名。

ServerAdmin指令

语法:ServerAdmin email-address|URL

这个指令用来设置server返回给client的错误信息中包括的管理员邮件地址。便于用户在收到错误信息后能及时与管理员取得联系。

ServerAdmin [email protected]

ServerSignature指令

语法:ServerSignature . | Off | Email

默认:ServerSignature Off

这个指令用来配置server端生成文档的页脚(错误信息、mod_proxy的FTP文件夹列表、mod_info的输出)。使用该指令来启用这个页脚主要在于处于一个代理server链中的时候,用户基本无法辨识出到底是链中的哪个server真正产生了返回的错误信息。

http.conf中该指令默认是Off的,这样就没有错误行;使用On会简单的添加一行关于server版本号和正在提供服务的ServerName。

比如。我使用ServerSignature .后,在没有打开web页面时出现以下的信息:

Apache/2.2.11 (Unix)  PHP/5.2.8 Server at 192.168.120.240 Port 80

对于2.0.44以后的版本号,显示具体的server版本号号将由ServerTokens指令控制。

ServerTokens指令

语法:ServerTokens Major | Minor | Min[imal] | Prod[uctOnly] | OS | Full

默认:ServerTokens Full

这个指令用来控制server回应给client的“Server:”应答头是否包括关于server操作系统类型和编译进的模块描写叙述信息。

注意:在使用ServerTokens指令时要先启用ServerSignature指令。

ServerTokens Prod[uctOnly]:server会发送(比方):Apache

Apache Server at 192.168.120.240 Port 80

ServerTokens Major:server会发送(比方):Apache/2

Apache/2 Server at 192.168.120.240 Port 80

ServerTokens Minor:server会发送(比方):Apache/2.2

Apache/2.2 Server at 192.168.120.240 Port 80

ServerTokens Min[imal]:server会发送(比方):Apache/2.2.11

Apache/2.2.11 Server at 192.168.120.240 Port 80

ServerTokens OS:server会发送(比方):Apache/2.2.11(Unix)

Apache/2.2.11 (Unix) Server at 192.168.120.240 Port 80

ServerTokens Full:server会发送(比方):Apache/2.2.11(Unix)PHP/5.2.8

Apache/2.2.11 (Unix)  PHP/5.2.8 Server at 192.168.120.240 Port 80

UseCanonicalName指令

语法:UseCanonicalName On | Off | DNS

默认:UseCanonicalName Off

这个指令用来构造Apache的自引用URL(一个指回同样server的URL)。

UseCanonicalName .:会将ServerName设置的域名用于全部的自引用URL、SERVER_NAME、CGI中的SERVER_PORT。

比方:假设你的webserver有自己的域名,并且在DNS中有相应的NS记录。并且httpd.conf将ServerName设置了域名,那么你在浏览器中输入http://192.168.120.240/bbs,它会自己主动将这个IP地址变成其相应的域名。比方http://www.bob.com/bbs/ 。

此时,假设其它client的电脑不能正确的解析webserver的这个域名,那么在訪问这个webserver时将会出现故障。由于webserver会自己主动将IP地址转变成域名。

UseCanonicalName Off:假设client提供了主机名和port,Apache将会使用client提供的这些信息来构建自引用URL。这些值与用于实现基于域名的虚拟主机的值相同,而且对于相同的client可用。CGI变量SERVER_NAME和SERVER_PORT也会由client提供的值来构建。

UseCanonicalName DNS:本设置用于为大量基于IP的虚拟主机支持那些不提供“Host:“头的浏览器使用。使用这个选项时,Apache将对client连入的server的IP地址进行DNS反向解析。以构建自引用URL。

UseCanonicalPhysicalPort指令

语法:UseCanonicalPhysicalPort . | Off

默认:UseCanonicalPhysicalPort Off

这个指令用来配置server怎样确定自己的port。

UseCanonicalPhysicalPort .:Apache有可能在构造server的规范port时为了符合UseCanonicalName指令而使用实际的物理port号。

UseCanonicalPhysicalPort Off:Apache不会使用实际的物理port号。而是依赖全部已经配置的信息来构造一个合法的port号。

注意:

决定使用物理port号的次序例如以下:

UseCanonicalName .

Servername指定的port号

物理port号

默认port号

UseCanonicalName Off | DNS

“Host:”请求头提供的port号

物理port号

Servername指定的port号

默认port号

在UseCanonicalPhysicalPort Off的情况下。物理port号将会从上述顺序中剔除。

Apacheserver全局配置之文件定位配置篇

文件定位相关指令:

CoreDumpDirectory

DocumentRoot

ErrorLog

LockFile

PidFile

ScoreBoardFile

ServerRoot

这些指令控制Apache正常工作所需的各种文件的定位。假设路径名不以斜线“/”开头,那么就觉得该文件是相对于ServerRoot的相对路径。

CoreDumpDirectory指令

语法:CoreDumpDirectory directory-path

这个指令用来控制Apache使用的内核转储文件夹,该转储文件夹默认位于“ServerRoot”下。由于这个文件夹通常对于执行server的用户是不可写的。内核转储一般也不会写入内容。假设你在调试中须要内核转储,那么你能够用这个指令来指定另外一个文件夹。

DocumentRoot指令

语法:DocumentRoot directory-path

这个指令用来设置httpd提供服务的文件夹。

在没有使用类似Alias这种指令的情况下。server会将请求中的URL附加到DocumentRoot后面以构成指向文档的路径。

比如:

DocumentRoot “/usr/local/httpd/htdocs”

那么在訪问http://192.168.120.240/bbs/index.html时,实际上就是訪问/usr/loca/httpd/htdocs/bbs/index.html。

假设directory-path不是绝对路径。则就会被假定为相对于ServerRoot的路径。

比如:

ServerRoot “/usr/local/httpd/”

DocumentRoot “htdocs”

那么在訪问http://192.168.120.240/bbs/index.html时,实际上还是会被定位到/usr/loca/httpd/htdocs/bbs/index.html。

ErrorLog指令

语法:ErrorLog file-path | syslog[:facility]

默认:ErrorLog “logs/error_log”

这个指令用来设置当server遇到错误时记录错误日志的文件。假设file-path不是以/开头的绝对路径,那么将会被觉得是一个相对于ServerRoot的相对路径。

LockFile指令

语法:LockFile filename

这个指令设置当AcceptMutex指令的值是fcntl或flock的时候,Apache使用的锁文件的位置。

一般保持默认值。改变默认值的主要原因是logs文件夹位于一个NFS文件系统上。由于锁文件必须位于本地磁盘上。主server进程的PID会自己主动加入到文件名称后面。

注意:不要将该锁文件放在不论什么人都有写权限的文件夹中。由于别人能够通过建立一个与server企图建立的锁文件同名的文件,来阻止server启动。

PidFile指令

语法:PidFile filename

默认:PidFile “logs/httpd.pid”

这个指令用来设置server记录父进程(监控进程)PID的文件。

假设指定的不是绝对路径,那么将会被觉得是一个相对于ServerRoot的相对路径。

ScoreBoardFile指令

语法:ScoreBoardFile file-path

这个指令用来设置存储子进程协调数据的文件。Apache使用记分板(scoreboard)在父进程和子进程之间进行通信。

一些体系机构要求有一个文件来帮助通信。

假设未指定这个文件。Apache会首先尝试在匿名共享内存中建立完整的记分板。假设失败。将继续尝试使用基于文件的共享存储器在磁盘上建立这个文件。若利用这个指令指定这个文件的位置,则Apache将总是在磁盘上建立这个文件。

将ScoreBoardFile放置在RAM DISK中对訪问速度有非常大帮助。

可是要注意放置的位置以及权限。

ServerRoot指令

语法:ServerRoot directory-path

这个指令用来设置Apacheserver所在的文件夹。

一般包括conf/、logs/等子文件夹。

其它配置文件的相对路径一般都是基于此文件夹的。

比如:

ServerRoot “/usr/local/httpd/”

Apacheserver全局配置之资源限制配置篇

资源限制相关指令:

LimitRequestBody

LimitRequestFields

LimitRequestFieldsize

LimitRequestLine

RLimitCPU

RLimitMEM

RLimitNPROC

ThreadStackSize

LimitRequest*系列指令用来限制Apache在读取client请求的过程中使用的资源数量。通过限制这些值,能够减轻某些拒绝服务(DOS)攻击。

RLimit*系列指令用来限制Apache子进程所派生的进程使用的资源数量。

通常。这些指令用来控制CGI脚本和SSI exec命令所使用的资源。

ThreadStackSize指令在某些平台上用来控制堆栈大小。

LimitRequestBody指令

语法:LimitRequestBody bytes

默认值:LimitRequestBody 0

这个指令用来设置client发送的HTTP请求的最大字节数。LimitRequestBody指令能够作用于整个server、特定文件夹、特定文件、特定位置。

假设client的请求超出了LimitRequestBody设置的值,那么server会回应一个错误信息给client。而不会去处理这个请求。

Bytes在0(不限制)到2147483647(2GB)之间。

比方:你同意client将文件上传到某个位置,而且希望将上传文件的限制大小为500K,

LimitRequestBody 512000

LimitRequestFields指令

语法:LimitRequestFields number

默认:LimitRequestFields 100

这个指令用来设置client向server请求中HTTP请求头域的数量。一般一个client请求头域的数量非常少大于20。可是client的不同这个数字也将有非常大的差异。

这个常常取决于用户配置他们的浏览器扩展以支持更具体的内容协商。可选的HTTP扩展常常使用请求头域来实现。

number是一个0(不限制)到32767之间的整数。默认值为编译时的常量DEFAULT_LIMIT_REQUEST_FIELDS(公布值为100)。

LimitRequestFieldsize指令

语法:LimitRequestFieldsize bytes

默认:LimitRequestFieldsize 8190

这个指令用来设置client发送的HTTP请求头的最大字节数。一般来说。server须要此值够大。以适应普通客户的的不论什么请求的头域大小。头域的大小一般与浏览器支持的内容协议有密切关系。

普通情况下,不要更改这个值,使用默认就可以。

LimitRequestLine指令

语法:LimitRequestLine bytes

默认:LimitRequestLine 8190

这个指令用来设置client发送的HTTP请求行的最大字节数。

请求行包含HTTP方法、URL、协议版本号等。

因此LimitRequestLine指令可以限制URL的长度,server会须要这个值足够大以装载它全部的资源名,包含可能在GET请求中所传递的查询部分的全部信息。

普通情况下,不要更改这个值。使用默认就可以。

RLimitCPU指令

语法:RLimitCPU seconds | max [seconds|max]

默认:没有定义,使用操作系统默认值

这个指令用来设置Apache子进程派生的进程占用CPU的最大秒数。

这里能够设置一个或者两个參数。

第一个參数设置全部进程的软资源限制,第二个參数设置最大资源限制。两个參数均可设置为一个数值或者是“max”(表示设置为操作系统同意的最大值)。要增大此资源限制最大值须要以root执行server或是在初始化启动语句中进行设置。

这个指令仅仅作用于Apache子进程所派生的进程,而不是Apache子进程本身。

这个范围包含CGI脚本和SSI运行命令,不包含全部从Apache父进程派生出的进程。比方管道日志。

CPU资源限制表示每进程占用的秒数。

RLimitMEM指令

语法:RLimitMEM bytes | max [bytes|max]

默认:没有定义,使用操作系统默认值

这个指令用来设置Apache子进程派生的进程占用内存的最大字节数。

这里能够设置一个或者两个參数。第一个參数设置全部进程的软资源限制,第二个參数设置最大资源限制。

两个參数均可设置为一个数值或者是“max”(表示设置为操作系统同意的最大值)。

要增大此资源限制最大值须要以root执行server或是在初始化启动语句中进行设置。

这个指令仅仅作用于Apache子进程所派生的进程,而不是Apache子进程本身。

这个范围包含CGI脚本和SSI运行命令。不包含全部从Apache父进程派生出的进程。比方管道日志。

内存资源限制表示为每进程占用的字节数。

RLimitNPROC指令

语法:RLimitNPROC number | max [number|max]

默认:没有定义,使用操作系统默认值

这个指令用来设置Apache子进程派生的进程数目。

这里能够设置一个或者两个參数。

第一个參数设置全部进程的软资源限制。第二个參数设置最大资源限制。

两个參数均可设置为一个数值或者是“max”(表示设置为操作系统同意的最大值)。要增大此资源限制最大值须要以root执行server或是在初始化启动语句中进行设置。

这个指令仅仅作用于Apache子进程所派生的进程。而不是Apache子进程本身。这个范围包含CGI脚本和SSI运行命令,不包含全部从Apache父进程派生出的进程。比方管道日志。

进程限制控制了每一个用户的进程数。

ThreadStackSize指令

语法:ThreadStackSize size

默认:NetWare上为65536,其它平台上等于操作系统默认值

这个指令用来设置处理client连接(包含调用模块以协助处理)的线程同意使用的最大栈尺寸(字节)。

大多数情况下。操作系统默认的栈尺寸非常合理。可是在某些情况下。须要调整这个值:

在默认栈尺寸较小的平台上(比方HP-UX)。Apache可能会在使用一些须要较大栈尺寸的第三方模块时崩溃。

这种问题能够通过将ThreadStackSize设置为一个较大的值来解决。这种调整应当只在第三方模块提供者明白要求的情况下才须要,或者是您通过诊断确定是因为栈空间太小而导致崩溃。

在某些平台上。假设默认的栈空间大于server执行所需空间,那么将ThreadStackSize值减少到小于操作系统默认值能够让每一个进程中同意生成的最大线程数量添加。

这样的类型的调整应该仅在測试环境中使用。而且对全部server进程进行充分的測试。由于处理某些罕见的请求须要较大的栈空间。一个非常小的server配置变化就有可能使得当前的ThreadStackSize设置变得不合适。

时间: 2024-10-08 10:29:09

apacheserver全局配置具体解释的相关文章

0221自学Linux_bash全局配置+个人配置+命令(useradd,finger,groupadd相关,chage,chown,chmod,umask)

13 一.useradd要牢牢掌握这个 useradd [options] USERNAME(登录名) -u:指定UID [email protected] ~]# useradd -u 1000 user1 [[email protected] ~]# tail -1 /etc/passwd user1:x:1000:1000::/home/user1:/bin/bash 要明白,如果UID和GID不一样,会在权限和脚本上有一定的影响 -r:添加一个系统用户,从1-499之间找一个id号,并且

Linux运维实战之Apache的基本配置(全局配置、主服务器配置):

上次博文我们具体讨论了http协议(参见:http://sweetpotato.blog.51cto.com/533893/1656137),本次博文我们来具体配置一台Apache(httpd)服务器. 本次博文的主要内容: httpd相关包信息 httpd的安装及主页面 httpd的配置文件 httpd的全局配置 httpd的主服务器配置 一.httpd的RPM包介绍及其相关信息: RHEL5和RHEL6略有不同: 下图是RHEL5上httpd相关包的信息: 下图是RHEL6上httpd相关包

vue全局配置----小白基础篇

今天学习vue全局配置.希望帮助我们去了解vue的全局配置,快速开发. Vue.config是vue的全局配置对象.包含Vue的所有全局属性: silent:boolean(默认值:false)----取消Vue的所有的日志与警告 :用法:Vue.config.silent = true optionMergeStrategies:{[key:string]:Function}(默认是空对象{}) vue.config.optionMergeStrategies._my_option = fun

3、mybatis动态sql+struts2(通配符+全局配置+分页)

1.创建userinfo.sql数据库脚本 1 create table USERINFO 2 ( 3 id NUMBER not null, 4 uname VARCHAR2(20), 5 password VARCHAR2(20), 6 age NUMBER 7 ) 8 ; 9 alter table USERINFO add primary key (ID); 10 11 create sequence seq_userinfo; 12 13 insert into USERINFO (i

理解BPDU Guard的意义(BPDU Guard在全局配置与接口配置上的区别)

理解BPDU Guard的意义(BPDU Guard在全局配置与接口配置上的区别)   本文截自于博主CCNP交换技术稿件内容   BPDU Guard(BPDU保护),简单的讲它的意义就是一个不该接收BPDU的端口,比如被启动了portfast的端口,一旦收到BPDU报文,那么BPDU保护功能将会立即关闭该端口,并将端口状态置为error-disabled状态.BPDU Guard的配置分为全局型的配置和接口级的配置,注意这两种配置将带来一些不同的效果. 全局配置BPDU Guard 全局配置

PIX配置手册四(icmp全局配置)

PIX配置手册四(icmp全局配置) PIX默认允许直连的设备ping通pix的接口,但不允许任何穿越pingPIX的接口. 穿越PIX的间接地ping,可以用acl来控制. 如果不想让别人pingPIX的接口,pix可以去ping别人,可以用icmp来控制. 用以下命令: icmp deny any echo outside   阻止pix外部进来的eho流量,防止别人ping自己 icmp permit any outside      允许外部进来的任何icmp流量,以保证自己可以去pin

Keepalived的全局配置

Keepalived的全局配置 默认配置文件如下: 1 ! Configuration File for keepalived 2 3 global_defs { 4 notification_email { 5 [email protected] 6 [email protected] 7 [email protected] 8 } 9 notification_email_from [email protected] 10 smtp_server 192.168.200.1 11 smtp_

Web API 源码剖析之全局配置

Web API  均指Asp.net Web API .本节讲述的是基于Web API 系统在寄宿于IIS. 本节主要讲述Web API全局配置.它是如何优雅的实现这个配置.做过MVC 都知道Global文件来初始化.Web API 本质上也是ASP.NET applications.所以也是在Global定义里一个GlobalConfiguration静态类.该类作用就是初始化ASP.NET applications.如下是GlobalConfiguration的定义. //    // 摘要

Web学习之——02Apache的基本配置(全局配置、主服务器配置)

主要内容: httpd相关包信息 httpd的安装及主页面 httpd的配置文件 httpd的全局配置 httpd的主服务器配置 一.httpd的RPM包介绍及其相关信息: CentOS6上httpd的相关包信息: CentOS7上的httpd的相关信息: [httpd安装后各文件的内容及存放位置]: CentOS6: 服务脚本:/etc/rc.d/init.d/httpd 运行目录:/etc/httpd 配置文件:/etc/httpd/conf/ 主配置文件:httpd.conf 扩展配置文件