httpd配置文件详解
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详细设置
#### 虚拟主机必须重新设定的指令
#文档树的根目录(没有真正的主服务器,因此不设置此值)(不能包含结尾斜杠)
#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.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下关于虚拟主机的配置关于虚拟主机的概述:配置虚拟主机主要应用场景:多站点访问,一个服务器放置了多个站点服务。
主要的三种配置方法: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配置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服务器配置
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配置详解常⽤配置指令说明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配置文件中文详解
# 包括:"*", 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)
Apache2配置参数详细说明
StartThreads 250
MinSpareThreads 25
MaxSpareThreads 250
MaxThreads 1000
MaxRequestPerChild 0
</IfModule>
# OS/2 MPM
# StartServers:启动的服务进程数量
# ThreadsPerChild:每个服务进程中的工作线程常数
# MaxRequestsPerChild:服务进程中允许的最大请求数目
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
<IfModule>
<IfModule>
#
#PidFile:记录服务器启动进程号的文件。
#
<IfModule !mpm_neware.c>
PidFile logs/httpd.pid
</IfModule>
#
#Timeout:接收和发送前超时秒数
#
Timeout 300
#
#KeepAlive:是否允许稳固的连接(每个连接有多个请求),
#
KeepAliveTimeout 15
##
##Server-Pool大小设定(针对MPM的)
##
# prefork MPM
# StartServers:启动时服务器启动的进程数
# MinSpareServers:保有的备用进程的最小数目
Apache配置详解
Apache配置详解Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改。
主站点的配置(基本配置)(1) 基本配置:ServerRoot "/mnt/software/apache2" #你的apache软件安装的位置。
其它指定的目录如果没有指定绝对路径,则目录是相对于该目录。
PidFile logs/httpd.pid #第一个httpd进程(所有其他进程的父进程)的进程号文件位置。
Listen 80 #服务器监听的端口号。
ServerName :80 #主站点名称(网站的主机名)。
ServerAdmin admin@ #管理员的邮件地址。
DocumentRoot "/mnt/web/clusting" #主站点的网页存储位置。
以下是对主站点的目录进行访问控制:<Directory "/mnt/web/clusting">Options FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all</Directory>在上面这段目录属性配置中,主要有下面的选项:Options:配置在特定目录使用哪些特性,常用的值和基本含义如下:ExecCGI: 在该目录下允许执行CGI脚本。
FollowSymLinks: 在该目录下允许文件系统使用符号连接。
Indexes: 当用户访问该目录时,如果用户找不到DirectoryIndex指定的主页文件(例如index.html),则返回该目录下的文件列表给用户。
SymLinksIfOwnerMatch: 当使用符号连接时,只有当符号连接的文件拥有者与实际文件的拥有者相同时才可以访问。
其它可用值和含义请参阅:/Apache/ApacheManual/mod/core.html#options AllowOverride:允许存在于.htaccess文件中的指令类型(.htaccess文件名是可以改变的,其文件名由AccessFileName指令决定):None: 当AllowOverride被设置为None时。
httpd配置文件httpd.conf规则说明和一些基本指令
httpd配置⽂件httpd.conf规则说明和⼀些基本指令本⽂主要介绍的是httpd的配置⽂件,包括⼀些最基本的指令、配置规则、配置合并规则。
以下指令完全来⾃官⽅⼿册以及我⾃⼰的总结和整理。
1.1 httpd命令和apachectl命令[root@xuexi ~]# httpd -hUsage: httpd [-D name] [-d directory] [-f file][-C "directive"] [-c "directive"][-k start|restart|graceful|graceful-stop|stop][-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S] [-X]Options:-D name : 定义⼀个在< IfDefine name >中使⽤的name,以此容器中的指令-d directory : 指定ServerRoot-f file : 指定配置⽂件-C "directive" : 指定在加载配置⽂件前要处理的指令(directive)-c "directive" : 指定在加载配置⽂件后要处理的指令-e level : 显⽰httpd启动时的⽇志调试级别-E file : 将启动信息记录到指定⽂件中-v : 显⽰版本号-V : 显⽰编译配置选项-h : 显⽰帮助信息-l : 显⽰已编译但⾮动态编译的模块,即静态编译的模块-L : 显⽰静态模块可⽤的指令列表-t -D DUMP_VHOSTS : 显⽰虚拟主机的设置信息-t -D DUMP_RUN_CFG : 显⽰运⾏参数-S : 等价于-t -D DUMP_VHOSTS -D DUMP_RUN_CFG。
在调试如何解析配置⽂件时⾮常⾮常有⽤-t -D DUMP_MODULES : 显⽰所有已被加载的模块,包括静态和动态编译的模块-M : 等价于-t -D DUMP_MODULES-t : 检查配置⽂件语法-T : 不检查DocumentRoot,直接启动-X : 调试模式,此模式下httpd进程依赖于终端-k : 管理httpd进程,接受start|restart|graceful|graceful-stop|stopapachectl命令和httpd命令基本相同。
Apache主配置文件httpd.conf详解
Apache主配置⽂件httpd.conf详解Apache的主配置⽂件:/etc/httpd/conf/httpd.conf默认站点主⽬录:/var/www/html/Apache服务器的配置信息全部存储在主配置⽂件/etc/httpd/conf/httpd.conf中,这个⽂件中的内容⾮常多,⽤wc命令统计⼀共有1009⾏,其中⼤部分是以#开头的注释⾏。
[root@justin ~]# wc -l /etc/httpd/conf/httpd.conf1009 /etc/httpd/conf/httpd.conf[root@justin ~]#配置⽂件包括三部分:[root@justin ~]# grep '\<Section\>' /etc/httpd/conf/httpd.conf -n33:### Section 1: Global Environment245:### Section 2: 'Main' server configuration973:### Section 3: Virtual Hosts[root@justin ~]#1)Global Environment---全局环境配置,决定Apache服务器的全局参数2)Main server configuration---主服务配置,相当于是Apache中的默认Web站点,如果我们的服务器中只有⼀个站点,那么就只需在这⾥配置就可以了。
3)Virtual Hosts---虚拟主机,虚拟主机不能与Main Server主服务器共存,当启⽤了虚拟主机之后,Main Server就不能使⽤了--------------------------------------------------------------------------------1)Global Environment44 ServerTokens OS在出现错误页的时候是否显⽰服务器操作系统的名称,ServerTokens Prod为不显⽰57 ServerRoot "/etc/httpd"⽤于指定Apache的运⾏⽬录,服务启动之后⾃动将⽬录改变为当前⽬录,在后⾯使⽤到的所有相对路径都是想对这个⽬录下65 PidFile run/httpd.pid记录httpd守护进程的pid号码,这是系统识别⼀个进程的⽅法,系统中httpd进程可以有多个,但这个PID对应的进程是其他的⽗进程70 Timeout 60服务器与客户端断开的时间76 KeepAlive Off是否持续连接(因为每次连接都得三次握⼿,如果是访问量不⼤,建议打开此项,如果⽹站访问量⽐较⼤关闭此项⽐较好),修改为:KeepAlive On 表⽰允许程序性联机83 MaxKeepAliveRequests 100表⽰⼀个连接的最⼤请求数89 KeepAliveTimeout 15断开连接前的时间102 <IfModule prefork.c>103 StartServers 8104 MinSpareServers 5105 MaxSpareServers 20106 ServerLimit 256107 MaxClients 256108 MaxRequestsPerChild 4000109 </IfModule>系统默认的模块,表⽰为每个访问启动⼀个进程(即当有多个连接公⽤⼀个进程的时候,在同⼀时刻只能有⼀个获得服务)。
apache的配置及小经验总结
///insert into table values(1)
if($i=0;$i<$nums;$i++){
也可以通过ini_set()函数去设置配置文件的值:@ini_set('display_errors',1);
E:extension=php_zip.dll 调用压缩包
F:查找error_reporting = E_ALL & ~E_NOTICE,将其前边的分号去掉(显示所用的错误和警告,除了notice)
$sql="insert into table values('$array[$i]')";
$rec=mysql_query($sql);
}
///批量插入第二种方法
$array=$_POST['checkbox'];
$nums=count($_POST['checkbox']);
21.javascript中在处理<select multiple="multiple">标签时,join()函数和implode()函数是一样的, arr.join(",") 将数组元素以逗号连接在一起
22.1.alert(document.form1.elements.length);
D:查找DirectoryIndex 看到后面只有index.html 在它后面加上index.php (index.sht,大概在241行ml)。
F:查找 Include conf/extra/http-mpm.conf ,将此行前边的#去掉。
apache.htaccess文件详解和配置技巧总结
apache.htaccess⽂件详解和配置技巧总结.htaccess是⼀个纯⽂本⽂件,它⾥⾯存放着Apache服务器配置相关的指令。
.htaccess主要的作⽤有:URL重写、⾃定义错误页⾯、MIME类型配置以及访问权限控制等。
主要体现在伪静态的应⽤、图⽚防盗链、⾃定义404错误页⾯、阻⽌/允许特定IP/IP段、⽬录浏览与主页、禁⽌访问指定⽂件类型、⽂件密码保护等。
.htaccess的⽤途范围主要针对当前⽬录。
启⽤.htaccess,需要修改httpd.conf,启⽤AllowOverride,并可以⽤AllowOverride限制特定命令的使⽤。
打开httpd.conf⽂件⽤⽂本编辑器打开后,查找复制代码代码如下:<Directory />Options FollowSymLinksAllowOverride None</Directory>改为:<Directory />Options FollowSymLinksAllowOverride All</Directory>如果需要使⽤.htaccess以外的其他⽂件名,可以⽤AccessFileName指令来改变。
例如,需要使⽤.config ,则可以在服务器配置⽂件中按以下⽅法配置:复制代码代码如下:AccessFileName .config1、访问控制基础:Order命令为了限制⽤户访问⼀些关键⽬录,通常加⼊.htaccess⽂件,常见的写法如下:复制代码代码如下:<Files ~ "^.*\.([Ll][Oo][Gg])|([eE][xX][eE])">Order allow,denyDeny from all</Files>说明:(1)Files后的波浪线表⽰启⽤“正则表达式”,简单的写法有:<Files *>。
(2)Order命令:通过Allow,Deny参数,Apache⾸先找到并应⽤Allow命令,然后应⽤Deny命令,以阻⽌所有访问,也可以使⽤Deny,Allow。
Apache服务器配置
载入模块指令
Apache服务器采用动态共享对象(DSO,Dynamic Shared Object)的机制,在启动Apache服务器时可根据实际需要载 入适当的模块,使其具有相应的功能。 载入模块的相关指令有: LoadModule ClearModuleList AddModule
LoadModule
建立系统用户的个人主页
1. 修改httpd.conf,启用个人主页功能 UserDir public_html [root@www ~]# vi /usr/local/apache2/conf/httpd.conf …… 确认目录区域设置 #UserDir disable 2. 建立个人主页测试网页 …… ~/public_html/index.html UserDir public_html <Directory "/home/*/public_html"> /home/jerry/ 添加权限:chmod o+x AllowOverride none 3. 重新启动httpd服务 Options none /usr/local/apache2/bin/apachectl restart Order allow,deny Allow from 4. 访问测试 all </Directory> /~user
httpd服务的日志
两类日志文件 访问日志:/usr/local/apache2/logs/access_log 错误日志:/usr/local/apache2/logs/error_log httpd.conf中对日志的设置
[root@localhost ~]# vi /usr/local/apache2/conf/httpd.conf …… ErrorLog logs/error_log CustomLog logs/access_log common ……
httpd.conf配置完美详解
httpd.conf配置完美详解Linux下httpd.conf 配置详解1. 关于本文本文将以Apache 2.2为例,以rhel5为平台,讲述Apache服务器的安装和设置。
2. 关于ApacheApache 是一款功能强大、稳定、可支撑关键任务的Web服务器Apache具有如下特性:1) 几乎可以运行在所有的计算机平台上.2) 支持最新的HTTP/1.1协议3) 简单而且强有力的基于文件的配置(HTTPD.CONF).4) 支持通用网关接口(CGI)5) 支持虚拟主机.6) 支持HTTP认证.7) 集成PERL.8) 集成的代理服务器9) 可以通过WEB浏览器监视服务器的状态, 可以自定义日志.10) 支持服务器端包含命令(SSI).11) 支持安全SOCKET层(SSL).12) 具有用户会话过程的跟踪能力.13) 支持FASTCGI14) 支持JAVA SERVLETS.……更多信息请参阅Apache网站:/doc/327020310.html,3. Apache的安装Apache的安装无外两种方式:源码包安装和二进制包安装。
这两种方式各有特色,二位制包安装不需编译,针对不同的平台有经过优化编译的不同的二进制文件以及包格式,安装简单方便,源码包则必须先配置编译再安装,可以根据你所用的主机环境进行优化、选择你所用的模块,安装定制更灵活。
下面分别介绍这两种安装方式。
3.1 以源码包方式安装3.1.1 下载最新版本的apache软件访问apahce网站/doc/327020310.html,/download.cgi下载最新版本的Apache源码包。
本文使用的是2.2.6版本,在linux系统下用下面的命令下载:wget /doc/327020310.html,/httpd/httpd-2.2.6.tar.gz3.1.2 解压缩下载的源码包首先建立一个工作目录( 笔者建议的目录为/usr/local/src/apache ) :mkdir -p /usr/local/src/apache 将下载的源码包移至工作目录:mv httpd-2.2.6.tar.gz /usr/local/src/apache进入工作目录并用tar命令解压源码包:cd /usr/local/src/apachetar zxvf httpd-2.2.6.tar.gz命令执行结束后,当前工作目录下将生成一个新的子目录httpd-2.2.6,此目录下即为Apache的源码文件。
apache 中文详解
由于Apache对一个目录的访问控制设置是能够被下一级目录继承的,因此对根目录的设置将影响到它的下级目录。注意由于AllowOverride None的设置,使得Apache服务器不需要查看根目录下的访问控制文件,也不需要查看以下各级目录下的访问控制文件,直至httpd.conf(或access.conf )中为某个目录指定了允许Alloworride,即允许查看访问控制文件。由于Apache对目录访问控制是采用的继承方式,如果从根目录就允许查看访问控制文件,那么Apache就必须一级一级的查看访问控制文件,对系统性能会造成影响。而缺省关闭了根目录的这个特性,就使得Apache从httpd.conf中具体指定的目录向下搜寻,减少了搜寻的级数,增加了系统性能。因此对于系统根目录设置AllowOverride None不但对于系统安全有帮助,也有益于系统性能。
<Directory “H:/web001“>
Directory语句就是用来定义目录的访问限制的,这里可以看出它的标准语法,为一个目录定义访问限制。上例的这个设置是针对系统的根目录进行的,设置了允许符号连接的选项FollowSymLinks ,以及使用AllowOverride None表示不允许这个目录下的访问控制文件来改变这里进行的配置,这也意味着不用查看这个目录下的相应访问控制文件。
All 缺省值,使访问控制文件可以覆盖系统配置
None 服务器忽略访问控制文件的设置
ServerName localhost
缺省情况下,并不需要指定这个ServerName参数,服务器将自动通过名字解析过程来获得自己的名字,但如果服务器的名字解析有问题(通常为反向解析不正确),或者没有正式的DNS名字,也可以在这里指定I P地址。当ServerName设置不正确的时候,服务器不能正常启动。
httpd-conf详解
PidFile /var/run/httpd.pid
PidFile指定的文件将记录httpd守护进程的进程号,由于httpd能自动复制其自身,因此系统中有多个httpd进程,但只有一个进程为最初启动的进程,它为其他进程的父进程,对这个进程发送信号将影响所有的httpd进程。PidFILE定义的文件中就记录httpd父进程的进程号。
<Directory “H:/web001“>
Directory语句就是用来定义目录的访问限制的,这里可以看出它的标准语法,为一个目录定义访问限制。上例的这个设置是针对系统的根目录进行的,设置了允许符号连接的选项FollowSymLinks ,以及使用AllowOverride None表示不允许这个目录下的访问控制文件来改变这里进行的配置,这也意味着不用查看这个目录下的相应访问控制文件。
通常一个Web服务器可以具有多个名字,客户浏览器可以使用所有这些名字或IP地址来访问这台服务器,但在没有定义虚拟主机的情况下,服务器总是以自己的正式名字回应浏览器。ServerName就定义了Web服务器自己承认的正式名字,例如一台服务器名字(在DNS中定义了A类型)为,同时为了方便记忆还定义了一个别名(CNAME记录)为,那么Apache自动解析得到的名字就为,这样不管客户浏览器使用哪个名字发送请求,服务器总是告诉客户程序自己为。虽然这一般并不会造成什么问题,但是考虑到某一天服务器可能迁移到其他计算机上,而只想通过更改DNS中的www别名配置就完成迁移任务,所以不想让客户在其书签中使用 freebsd记录下这个服务器的地址,就必须使用ServerName来重新指定服务器的正式名字。
Timeout 300
Timeout定义客户程序和服务器连接的超时间隔,超过这个时间间隔(秒)后服务器将断开与客户机的连接。
httpd基本配置及应用
httpd基本配置和应用任务要求:1.设置服务端口:8081;2.设置默认目录位置:\etc\web1;3.新建两个账户admin01,admin02;4.在web1下设置school,home两个目录;5.仅admin01拥有school目录的所有权限;6.仅admin02拥有home目录的所有权限;7.在web1下面新建index.htm,访问该页面时自动指向school下面的index.htm;8.在web1下面新建index.html,访问该页面时自动指向home下面的index.htm。
任务实现:安装httpd(Apache)请自行百度。
关于httpd的配置目录如下:图 1 httpd的主要配置文件测试httpd是否打开且正常运行,在浏览器中输入http://127.0.0.1,能够打开Apache默认页面说明安装成功:图 2 测试httpd服务是否启动成功 设置服务端口图 3 设置监听端口8081图 4 改变默认端口后不可访问图 5 使用修改后的端口8081 设置默认目录位置图 6 用vi打开httpd配置文件图 7 编辑默认目录位置新建账户图 8 按要求新建账户 在web1下设置school,home两个目录图 9 新建题述文件夹⏹仅admin01拥有school目录的所有权限,admin02拥有home目录的所有权限图 10 修改目录权限⏹建立所需文件并编写跳转源码图 11 建立所需*.htm*文件图 12 用vi编辑跳转源码图 13 用浏览器测试图 14 因权限限制不可访问图 15 修改相关权限使可访问目标文件图 16 再次测试已跳转到shool/index.htm访/etc/web1/index.html跳至/home/index.htm 的方法同上,请自行修改相关源码及权限。
Apache服务器配置文件
• 全局环境配置 • 主服务器配置 • 虚拟主机配置
配置指令的作用域
• 配置指令作用范围可以是全局或只能在容器 • server config、virtual host、directory、 .htaccess
查看指令的 作用域
• Apache 手册中指令的作用域(Context)项 • # httpd -L 或 apachectl -L
配置文件的基本语法
3
每一行包含一个指令,在行尾使用反斜杠”\”可以表示续行
配置文件中的指令不区分大小写,但是指令的参数 (argument) 通 常区分大小写
以 ”#” 开头的行被视为注解并在读取时被忽略。注解不能出现在 指令的后边
空白行和指令前的空白字符将在读取时被忽略,因此可以采用缩进 以保持配置层次的清晰
• # httpd -L 或 apachectl -L
Apache的服务器配置文件标识指令
8
ServerName
• 服务器用于辨识自己的主机名和端口号
ServerAdmin
• 服务器返回给客户端的错误信息中包含的管理员邮件地址
ServerSignature
• 配置服务器生成页面的页脚的信息
ServerTokens
DocumentRoot
组成网络上可见的主文档树的根目录
ErrorLog
存放错误日志的位置
CustomLog
访问日志文件的位置
LockFile
Apache 使用的锁文件的位置
PidFile
设置服务器用于记录父进程(监控进程) PID 的文件
Apache Profork MPM 的相关指令
10
StartServers:启动时服务器启动的进程数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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”来防止浏览器象显示文本那样显示二进制文件。