httpd配置文件详解

合集下载

APACHE服务器

APACHE服务器

Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用三个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行为。

httpd.conf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描述;srm.conf是服务器的资源映射文件,告诉服务器各种文件的MIME类型,以及如何支持这些文件;access.conf用于配置服务器的访问权限,控制不同用户和计算机的访问限制;这三个配置文件控制着服务器的各个方面的特性,因此为了正常运行服务器便需要设置好这三个文件。

除了这三个设置文件之外,Apache还使用mime.types文件用于标识不同文件对应的MIME类型,magic文件设置不同MIME类型文件的一些特殊标识,使得Apache 服务器从文档后缀不能判断出文件的MIME 类型时,能通过文件内容中的这些特殊标记来判断文档的MIME类型。

bash-2.02$ ls -l /usr/local/apache/conftotal 100-rw-r--r-- 1 root wheel 348 Apr 16 16:01 access.conf-rw-r--r-- 1 root wheel 348 Feb 13 13:33 access.conf.default-rw-r--r-- 1 root wheel 30331 May 26 08:55 httpd.conf-rw-r--r-- 1 root wheel 29953 Feb 13 13:33 httpd.conf.default-rw-r--r-- 1 root wheel 12441 Apr 19 15:42 magic-rw-r--r-- 1 root wheel 12441 Feb 13 13:33 magic.default-rw-r--r-- 1 root wheel 7334 Feb 13 13:33 mime.types-rw-r--r-- 1 root wheel 383 May 13 17:01 srm.conf-rw-r--r-- 1 root wheel 357 Feb 13 13:33 srm.conf.default事实上当前版本的Apache将原来httpd.conf、srm.conf与access.conf中的所有配置参数均放在了一个配置文件httpd.conf中,只是为了与以前的版本兼容的原因(使用这三个设置文件的方式来源于NCSA-httpd),才使用三个配置文件。

httpd.conf详细设置

httpd.conf详细设置

#### 虚拟主机必须重新设定的指令
#文档树的根目录(没有真正的主服务器,因此不设置此值)(不能包含结尾斜杠)
#DocumentRoot directory-path
#当没有指定ServerName时,服务器会尝试对IP地址进行反向查询来推断主机名。
#所以,必须胡乱设置一个默认的主服务器主机名
#411 必须发送Content-Length头否则无法处理
ErrorDocument 411 /error/http|ErrCode=411.htm
#412 指定的一些前提条件失败
ErrorDocument 411 /error/http|ErrCode=412.htm
#413 请求实体太大
#可以巧妙解决双线机房以及同目录多站点的问题 #还可以巧妙解决同时运行产品环境和开发环境的问题(本配置未使用该技巧)
UseCanonicalName Off
UseCanonicalPhysicalPort Off
#####################################################################
LogLevel warn
</IfModule>
#### 处理器
<IfModule mpm_winnt_module>
#定位CGI脚本解释器(仅用于Win32)
ScriptInterpreterSource Script
</IfModule>
#强制所有匹配的文件被一个指定的处理器处理
##### 适用于主服务器配置的动态加载模(DSO)块指令 #####
#### mod_deflate ####

Linux 主配置文件httpd.conf

Linux  主配置文件httpd.conf

Linux 主配置文件httpd.confhttpd.conf是最核心的配置文件,位于/etc/httpd/目录下。

像大多数的服务一样,几乎绝大部分的设置都需要通过修改该配置文件来完成。

Apache的主配置文件的内容有900多行,不过不用担心,因为绝大部分的内容是注释信息,而且注释内容相当丰富,用户完全可以通过注释来了解Apache的功能、语法以及使用。

对Apache服务器的配置,主要方式就是对httpd.conf配置文件的修改。

该文件是Apache服务器主要配置文件,包含各种影响服务器运行的配置选项,只有对这些配置信息进行理解,才能真正的掌握Apache服务器的配置。

用户可以在终端中,输入vi /etc/httpd/conf/httpd.conf命令,并按,打开该配置文件,如图38所示。

图38 主配置文件注释内容该主配置文件的注释内容,告诉用户一些基本信息,用户可以通过/docs/2.2/网站来查看该配置文件的更多细节。

该配置文件主要有3个基本的配置项:第一个是Global Environment(全局环境配置),第二个是Main server configuration(主服务配置),第三个是Virtual Hosts(虚拟主机配置)。

每部分都有相应的配置选项,该文件所有配置选项的语法为“配置选项名称参数值”的形式,配置选项可以放在文件中的任何地方,但为了增强文件的可读性,最好将配置语句放在相应的部分。

httpd.conf中每行包含一条语句,行末使用反斜杠“\”可以换行,但是反斜杠与下一行中间不能有任何其他字符(包括空白)。

httpd.conf的配置语句除了选项的参数值以外,所有选项指令均不区分大小写,可以在每一行前用“#”号,表示注释。

Global Environment(全局环境配置)该配置段中的各配置选项用于控制Apache服务器作为一个服务器作为一个整体来运行。

●Main server configuration(主服务配置)该配置段中的各配置选项用于定义主要或者默认服务参数的,也为所有虚拟主机提供默认的设置参数。

apache下配置详解

apache下配置详解

Apache下关于虚拟主机的配置关于虚拟主机的概述:配置虚拟主机主要应用场景:多站点访问,一个服务器放置了多个站点服务。

主要的三种配置方法:1、基于IP 2、基于端口3、基于主机名步骤详解:1.虚拟主机使用的话,必须将中心服务关闭,在/etc/httpd/conf/httpd.conf文件里,将DocumentRoot一行注释掉来关闭中心服务。

2.可以在httpd.conf文件最后面直接添加虚拟主机的配置内容,也可以在/etc/httpd/conf.d/下面创建一个自己的配置文件,如:my.conf文件。

3.my.conf文件配置详解1)基于IP配置<VirtualHost 192.168.0.112:80>ServerName DocumentRoot "/www/"</VirtualHost><VirtualHost 192.168.0.113:80>ServerName DocumentRoot "/www/"</VirtualHost>以上2个虚拟主机配置的IP分别为192.168.0.113和192.168.0.112,端口同为80端口。

这样在浏览器分别输入不同的ip或域名时就会访问到不同的站点。

Tips:如果只有一块网卡可以同过ipaddr add 192.168.0.112 dev eth0来添加辅助ip。

如果是域名方式访问,还需要在windows和linux下的hosts文件里面自行添加域名解析。

关于辅助ip的设置:ipaddr add 192.168.0.112/24 dev eth0这是为网卡设置一个辅助ip。

假如一个网卡的ip地址为192.168.0.22,执行上面的命令,在用ifconfig 查看,会发现有两个ip地址,而192.168.0.22称为主地址(Primary IP address),而192.168.0.112称为辅助地址(secondary IP address),一块网卡是允许有多个IP地址的,所以就算再多添加几个secondary IP 也是合法行的。

http2.2配置

http2.2配置

http2.2配置http: 超⽂本传输协议,⼯作在应⽤层CentOS 6程序环境:httpd-2.2 配置⽂件: /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*.conf 检查配置语法: httpd –t service httpd configtest 服务脚本:/etc/rc.d/init.d/httpd 脚本配置⽂件:/etc/sysconfig/httpd 服务控制和启动: chkconfig httpd on|off service {start|stop|restart|status|configtest|reload} httpd 站点⽹页⽂档根⽬录: /var/www/html 模块⽂件路径: /etc/httpd/modules /usr/lib64/httpd/modules 主程序⽂件: /usr/sbin/httpd /usr/sbin/httpd.worker /usr/sbin/httpd.event 主进程⽂件: /etc/httpd/run/httpd.pid ⽇志⽂件⽬录: /var/log/httpd access_log: 访问⽇志 error_log:错误⽇志 帮助⽂档包: httpd-manual httpd配置⽂件的组成: grep "Section" /etc/httpd/conf/httpd.conf Section 1: Global Environment Section 2: 'Main' server configuration Section 3: Virtual Hosts 配置格式:directive value 变量值 directive: 不区分字符⼤⼩写 value: 为路径时,是否区分⼤⼩写,取决于⽂件系统MPM⼯作模式: prefork:多进程I/O模型,每个进程响应⼀个请求,默认模型 ⼀个主进程:⽣成和回收n个⼦进程,创建套接字,不响应请求 多个⼦进程:⼯作work进程,每个⼦进程处理⼀个请求;系统初始时,预先⽣成多个空闲进程,等待请求,最⼤不超过1024个 worker:复⽤的多进程I/O模型,多进程多线程,IIS使⽤此模型 ⼀个主进程:⽣成m个⼦进程,每个⼦进程负责⽣个n个线程,每个线程响应⼀个请求,并发响应请求:m*n event:事件驱动模型(worker模型的变种) ⼀个主进程:⽣成m个⼦进程,每个进程直接响应n个请求,并发响应请求:m*n,有专门的线程来管理这些keep-alive类型的线程,当有真实请求时,将请求传递给服务线程,执⾏完毕后,⼜允许释放。

Apache服务器配置

Apache服务器配置

IN CNAME
IN CNAME
在上面的配置中,在提交的DNS正向配置文件以及反向配置文件中, 已经具有如下的A记录和PTR记录,分别为
www
利用httpd.conf我们可以对Apache服务器进行全局 配置、管理或预设服务器的参数定义、虚拟主机的设 置等。httpd.conf是一个文本文件,我们可以用vi编辑 工具进行修改。 httpd.conf文件主要分为三个部分: Section 1: Global Environment (全局变量) Section 2: 'Main' server configuration(主服务器配置) Section 3: Virtual Hosts(虚拟主机配置)
2.配置基于IP的虚拟主机 (1)基于IP虚拟主机的DNS配置 如果用户想要创建两个基于IP的虚拟主机和
这两个虚拟主机站点的共同域名是 。用户可以按照如下所示在DNS正向配置文 件中进行配置:
lth IN
A 192.168.15.212
3.Port 该参数用来指定Apache服务器的监听端口。一般来说,标准的HTTP
服务默认端口号是80,一ቤተ መጻሕፍቲ ባይዱ不要更改这个数值。本例为80端口:
Port 80 4.ServerAdmin
设置Apache服务器管理员的邮件地址。
5.ServerName 该参数使得用户可以自行设置主机名,以取代安装Apache服务器主机
7.MaxKeepAliveRequests 当使用保持连接(persistent connection)功能时,可以使用本参数决定
每次连接所能发出的要求数目的上限。如果此数值为0,则表示没有限制。 建议尽可能使用较高的数值,以充分发挥Apache的高性能,本例设置每次 连接所能发出的要求数目上限为100:

Apachehttpd.conf配置详解

Apachehttpd.conf配置详解

Apachehttpd.conf配置详解常⽤配置指令说明1. ServerRoot:服务器的基础⽬录,⼀般来说它将包含conf/和logs/⼦⽬录,其它配置⽂件的相对路径即基于此⽬录。

默认为安装⽬录,不需更改。

语法:ServerRoot directory-path如: ServerRoot "/usr/local/apache-2.2.6"注意,此指令中的路径最后不要加 / 。

2. Listen:指定服务器监听的IP和端⼝。

默认情况下Apache会在所有IP地址上监听。

Listen是Apache2.0以后版本必须设置的指令,如果在配置⽂件中找不到这个指令,服务器将⽆法启动。

语法:Listen [IP-address:]portnumber [protocol]Listen指令指定服务器在那个端⼝或地址和端⼝的组合上监听接⼊请求。

如果只指定⼀个端⼝,服务器将在所有地址上监听该端⼝。

如果指定了地址和端⼝的组合,服务器将在指定地址的指定端⼝上监听。

可选的protocol参数在⼤多数情况下并不需要,若未指定该参数,则将为443端⼝使⽤默认的https 协议,为其它端⼝使⽤http协议。

使⽤多个Listen指令可以指定多个不同的监听端⼝和/或地址端⼝组合。

默认为:Listen 80如果让服务器接受80和8080端⼝上请求,可以这样设置:Listen 80Listen 8080如果让服务器在两个确定的地址端⼝组合上接受请求,可以这样设置:Listen 192.168.2.1:80Listen 192.168.2.2:8080如果使⽤IPV6地址,必须⽤⽅括号把IPV6地址括起来:Listen [2001:db8::a00:20ff:fea7:ccea]:803. LoadModule:加载特定的DSO模块。

Apache默认将已编译的DSO模块存放于4.1⽬录结构⼩节中所⽰的动态加载模块⽬录中。

APACHE配置文件中文详解

APACHE配置文件中文详解
# 此标识用于告诉服务器监听哪个IP地址。
# 包括:"*", IP地址, 或域名.
# 参见 <VirtualHost> 和 Listen directives.
#
BindAddress 166.111.178.144
#
# Apache模块编译成标准的Windows结构。
#
# 以下模块绑定到标准的Apache二进制windows分布。
#
# 配置和日志文件名:指定服务器控制文件命名时,
# 以 "/" (或 "drive:/" for Win32)开始,服务器将使用这些绝对路径。
# 如果文件名不是以"/"开始的,预先考虑服务器根目录--
# 因此 "logs/foo.log",如果服务器根目录是"/usr/local/apache",
# 如果超过这个请求数,子程序会自动退出,避免延期使用导致内存溢出或其他问题。
# 大部分系统,并不需要此设置,
# 但是部分,象Solaris,确实值得注意。
# 对Win32, 可设置为0 (无限制)
# 除非有另外的考虑。
#
# 注: 此值不包括在每个连接初始化请求后,"keptalive"请求
#LoadModule status_module modules/ApacheModuleStatus.dll
#LoadModule usertrack_module modules/ApacheModuleUserTrack.dll
#
# ExtendedStatus 在服务器状态句柄被呼叫时控制是产生"完整"的状态信息(ExtendedStatus On)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Apache的httpd.conf文件常用指令解释#这是Apache服务器主要配置文件。

#它包含服务器的影响服务器运行的配置指令。

#参见<URL:/doc-2.0/>以取得关于这些指令的详细信息#这些配置指令被分为下面三个部分:#1. 控制整个Apache服务器行为的部分(即全局环境变量)#2. 定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数#3. 虚拟主机的设置参数##配置和日志文件名:如果你指定的文件名以“/”开始(win32下以“dirver:/”),#服务器将使用绝对路径,如果文件名不是以“/”开始的,那么它将把ServerRoot #的值附加在文件名的前面,例如,对“logs/foo.log",如果ServerRoot的值#为“/usr/local/apache2”,则该文件应为“/usr/local/apache2/logs/foo.log” ###第一区:全局环境参数##这里设置的参数将影响整个Apache服务器的行为;#例如Apache能够处理的并发请求的数量等。

##ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。

##注意!如果你想要将它指定为NFS或其它网络上的位置,#请一定要去阅读与LockFile有关的文档(可能在#URL:/docs-2.0/mod/mpm_common.html#lockfile>)。

#这将会使你自己也能解决很多问题。

#ServerRoot "/usr/loacl/apache2"##串行访问的锁文件必须保存在本地磁盘上##LockFile logs/accept.lock#ScoreBoardFile:用来保存内部服务进程信息的文件。

#如果未指明(默认),记分板(scoreboard)将被保存在一个匿名的共享内存段中,#并且它不能被第三方软件所使用。

#如果指定了,要确保不能使用两个Apache使用同一个记分板文件,#这个记分板文件必须保存在本地磁盘上。

##ScoreBoardFile logs/apache_runtime_status##PidFile:记录服务器启动进程号的文件。

#PidFile logs/httpd.pid##Timeout:接收和发送前超时秒数#Timeout 300##KeepAlive:是否允许稳固的连接(每个连接有多个请求),#设为"Off"则停用。

##MaxKeepAliveRequests:在稳固连接期间允许的最大请求数,#设为0表示无限制接入。

#我们推荐你将其设为一个较大的值,以便提高性能MaxKeepAliveRequests 100##KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数#KeepAliveTimeout 15####Server-Pool大小设定(针对MPM的)### prefork MPM# StartServers:启动时服务器启动的进程数# MinSpareServers:保有的备用进程的最小数目# MaxSpareServers:保有的备用进程的最大数目# MaxClients:服务器允许启动的最大进程数# MaxRequestsPerChild:一个服务进程允许的最大请求数StartServers 5MinSpareServers 5MaxSpareServers 10MaxClients 50MaxRequestPerChild 0# WinNT MPM# ThreadsPerChild:服务进程中工作线程常数# MaxRequestsPerChild:服务进程允许的最大请求数## Listen:允许你绑定Apache服务到指定的IP地址和端口上,以取代默认值# 参见指令# 使用如下命令使Apache只在指定的IP地址上监听,# 以防止它在IP地址0.0.0.0上监听## Listen 12.34.56.78:80Listen 80## 动态共享支持(DSO)## 为了能够使用那些以DSO模式编译的模块中的函数,你必须有相应的“LoadModule”行,# 因此,在这里包含了这些指令,以便能在使用它之前激活。

# 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块)## 示例:# LoadModule foo_module modules/mod_foo.so### ExtendedStatus:当调用“server-status”时,控制Apache是产生“全”状态# 信息(ExtendedStatus On),还是产生基本信息(ExtendedStatus Off)。

# 默认为off## ExtendedStatus On### 第二区:“主”服务配置# 定义处理的任何请求。

# 这些数值也提供默认值给后面定义的容器。

# 如果中有定义,那么这里定义的指令值将被# 中的定义所覆盖。

### 如果你想使httpd以另外的用户或组来运行,你必须在开始时以root方式启动# 然后再将它切换为你想要使用的用户或组。

## User/Group:运行httpd的用户和组# 在SCO (ODT3)上使用“User nouser”和“Group nogroup”# 在HPUX上,你可能不能以nobody身份使用共享内存,建议创建一个www用户。

# 注意一些核心(kernel)在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET),#节在这些系统上不要使用“Group #-1”。

#User nobodyGroup #-1## ServerAdmin:你的邮件地址,当发生问题时Apache将向你发出邮件。

# 作为一个出错文档,这个地址显示在server-generated页上,# 例如:admin@#ServerAdmin kreny@## ServerName指定Apache用于识别自身的名字和端口号。

# 如果你为你的主机指定了一个无效的DNS名,server-generated重定向将不能工作。

# 参见UseCanonicalName指令## 如果你的主机没有注册DNS名,在这里键入它的IP地址# 无论如何,你必须使用它的IP地址来提供服务,# 这里使用一种容易理解的方式重定向服务ServerName :80## UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。

# 当设置为“Off”时,Apache会使用用户端提供的主机名和端口号。

# 当设置为“On”,Apache会使用ServerName指令的值。

#UseCanonicalName Off## DocumentRoot:你的文档的根目录。

默认情况下,所有的请求从这个目录进行应答。

# 但是可以使用符号链接和别名来指向到其他的位置。

#DocumentRoot "/home/redhat/public_html"## Apache可以存取的每个目录都可以配置存取权限(包括它的子目录)。

## 首先,我们配置一个高限制的特征。

# 这将禁止访问文件系统所在的目录,并添加你希望允许访问的目录块。

# 如下所示Order Deny,Allow# 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。

# - 所以,如果Apache没有象你所期待的那样工作的话,# 请检查你是否在下面明确的指定它可用。

### 这将改变到你设置的DocumentRoot### Options:这个指令的值可以是“None”,“All”,或者下列选项的任意组合:# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews## 注意,“MultiViews”必须被显式的指定,“Options All”不能为你提供这个特性。

## 这个指令既复杂又重要,请参见#“/docs-2.0/mod/core.html#optioins”以取得更多的信息。

#Options FollowSymLinks## AllowOverride控制那些被放置在.htaccess文件中的指令。

# 它可以是“All”,“None”,或者下列指令的组合:# Options FileInfo AuthConfig Limit#AllowOverride None## 控制谁可以获得服务。

Allow from all## UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。

#UserDir public_html# 为防止在UserDir指令上的漏洞,对root用户设置# 象“./”这样的UserDir是非常有用的。

# 如果你使用Apache 1.3或以上版本,我们强烈建议你# 在你的服务器配置文件中包含下面的行UserDir disabled root## 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例:### AllowOverride FileInfo AuthConfig Limit Indexes# Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec## Order allow,deny# Allow from all### Order deny,allow# Deny from all#### index.html.var文件(一个类型映象文件)用于提供一个文档处理列表,# 出于同样的目的,也可以使用MultiViews选项,但是它会非常慢。

#DirectoryIndex index.php index.html index.html.var## AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。

# 参见AllowOverride指令。

#AccessFileName .htaccess## 下面的行防止.htaccess和.htpasswd文件被Web客户查看。

#Order allow,denyDeny from all## Typeconfig:定义在哪里查询mime.types文件。

#TypeConfig conf/mime.types## DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。

# 如果你的服务主要包含text或HTML文档,“text/plain”是一个好的选择;# 如果大多是二进制文档,诸如软件或图像,你应使用# “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。

相关文档
最新文档