linux下apache配置文件详解.docx
- 文档编号:17850124
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:20
- 大小:27.31KB
linux下apache配置文件详解.docx
《linux下apache配置文件详解.docx》由会员分享,可在线阅读,更多相关《linux下apache配置文件详解.docx(20页珍藏版)》请在冰点文库上搜索。
linux下apache配置文件详解
linux下apache配置文件详解
如果您是一位Linux爱好者,您可能已经掌握了基本的Linux的知识与操作,毫无疑问,您并不会去满足这样小小的成就;Linux为何如此的流行?
其最大的特点莫过于功能强大,性能稳定的服务器应用了。
像WWW,MAIL,FTP,DNS和SMB等;在本文中,我们从Web服务器的一些最基本的操作入手,从初学者使用的态度,让大家正确充分的认识apache(Unix平台最流行的WEB服务器平台)等服务器;
1.关于WWW和URL;
WWW是WorldWideWeb的缩写,翻译过来就是全球广域网,它可以接合文字、图形、影像及声音等多媒体,并通过超文本(HyperText)的方式,将信息通过Internet传递到世界各处;
例如:
在浏览器的地址栏上输入“http:
//www.linuxsir.org”,就可以登录的linuxsir的网站上浏览信息,其中“http:
//www.linuxsir.org”是URL(UniformResourceLocator,同一资源定位器),“www.linuxsir.org”是主机名称,也就是DNS中的FQDN(FullyQualifiedDomainName,完全符合标准的域名),即主机名称加上域名所得的一个独一无二的Internet上面的名字。
由于计算机仅识别网络中的IP,所以,linuxsir站的真实IP就是通过DNS解析www.linuxsir.org而找到的,然后经过www的协议将数据传到你的眼前;
1.1URL的格式;
<协议>:
//<主机地址>[:
端口]/<目录>
1.1.1协议;
包括http,ftp,news,gopher和telnet几种常见的协议。
其中,http是利用“主机的http端口,通常为80端口”,ftp是利用“主机的ftp端口,通常为21端口”。
注意:
80和21都是主机所提供的服务,而不是客户端的端口。
1.1.2主机地址;
当输入主机名(域名)时,必须要让该主机名称可以经由翻译器得到对应的IP。
翻译器是/etc/hosts或者是/etc/resolv.conf里面的设置对外提供正常的www服务器时,主机名称就必须要让大家可以翻译到IP,这就需要去申请一个合法的域名;
1.1.3目录;
也就是URI(UniformResourceIndicator,统一资源定位符),如果你要去的网站网页在主页所在目录的下面,那么你直接输入目录与网页的名称,就可以直接取得那个网页的数据。
若只输入目录与网页的名称,并没有输入网页名称,则服务器端会自动地判断(跟服务器自己的设置有关),该目录下是否有设置为默认的网页名称;
1.1.4端口;
当连接某个网站时,输入“http:
//that.host.name”就会主动地利用端口80来尝试连接对方的主机,但如果不想使用该端口呢。
举个例子来说,例如您的网站使用的是8080端口来进行www的服务,那么除非您使用了防火墙进行端口对应,否则直接在地址栏输入“http:
//your.host.name”结果将无法连接到你的www服务器,因为它会主动连接到端口80,所以这里就要告诉浏览器,向服务器请求服务的是哪个端口。
即写成“http:
//your.host.name:
8080”才可以连接到对方的端口8080;
2.www主机系统的类型;
大致上可以分两种:
一种是Windows系统的IIS+MS的SQL+ASPWWW服务器,这种www主机假设上比较容易,不过由于windows的某些特性,所以很容易被黑客所破坏;
另外一种则是Linux系统上的apache(Unix平台最流行的WEB服务器平台)+MySQL(和PHP搭配之最佳组合)(PostgreSQL)+PHP的www服务器(简称LAMP),这种服务器架设上有一定程度的困难,尤其是在升级与维护方面,但是架设妥当的话,它的硬件要求、性能、安全性等方面,则相对较佳,下面我们就来主要介绍一下apache(Unix平台最流行的WEB服务器平台)的架设;
2.1apache(Unix平台最流行的WEB服务器平台)的历史与前景;
1995年,美国国家计算机安全协会(NCSA)的开发者创建了NCSZ全球网络服务软件,其最大的特点是HTTP精灵程序,它比当时的CERN服务器更容易由源码来配置和创建,又由于当时其他服务器软件的缺乏,他很快流行起来。
但是后来,该服务器的核心开发人员几乎都离开了NCSA,一些使用者们自己成立了一个组织来管理他们编写的补丁,于是apache(Unix平台最流行的WEB服务器平台)Group应运而生。
他们把该服务器软件称为apache(Unix平台最流行的WEB服务器平台)。
apache(Unix平台最流行的WEB服务器平台)源于Apatchyserver的读音,意思是充满补丁的服务器。
如今apache(Unix平台最流行的WEB服务器平台)慢慢地已经成为Internet上最流行的Web服务器软件了。
在所有的Web服务器软件中,apache(Unix平台最流行的WEB服务器平台)占据绝对优势,远远领先排名第二的MicrosoftIIS。
如果你对它感兴趣,你可以访问apache(Unix平台最流行的WEB服务器平台)的官方网站:
http:
//www.apache(Unix平台最流行的WEB服务器平台).org。
apache(Unix平台最流行的WEB服务器平台)作为自由软件之一,像其他自由软件一样,他们都是由许许多多的自由开发人员投入了大量的时间和精力来实现并逐步完善的,所以我们有理由相信apache(Unix平台最流行的WEB服务器平台)的发展前景会更好。
2.2apache(Unix平台最流行的WEB服务器平台)2的安装;
软件的安装并不困难,您可以在www.apache(Unix平台最流行的WEB服务器平台).org上下载源码包进行安装,也可以使用各操作系统自带的软件包管理软件进行安装,比如我的系统是Ubuntu,那么就可以在终端中输入:
xiaop@xiaop-laptop:
~$sudoapt-getinstallapache(Unix平台最流行的WEB服务器平台)2
不同的系统有自己的软件包管理方式,其实都大同小异;
2.2.1使用源代码安装;
(1)获得源代码
xiaop@xiaop-laptop:
~#lynxhttp:
//www.apache(Unix平台最流行的WEB服务器平台).org/dist/httpd/httpd-2_0_NN.tar.gz
NN表示当前所用的版本号
(2)解压缩
xiaop@xiaop-laptop:
~#gzip-dhttpd-2_0_NN.tar.gz
或者
xiaop@xiaop-laptop:
~#tarxvfhttpd-2_0_NN.tar
(3)配置.
xiaop@xiaop-laptop:
~httpd-2_0_NN#./configure–prefix=/usr/local/apache(Unix平台最流行的WEB服务器平台)
表示apache(Unix平台最流行的WEB服务器平台)将安装在/usr/local/apache(Unix平台最流行的WEB服务器平台)目录下
(4)编译与安装
xiaop@xiaop-laptop:
~httpd-2_0_NN#make
xiaop@xiaop-laptop:
~httpd-2_0_NN#makeinstall
(5)测试
xiaop@xiaop-laptop:
~httpd-2_0_NN#/usr/local/apache(Unix平台最流行的WEB服务器平台)/bin/apache(Unix平台最流行的WEB服务器平台)ctlstart
3.apache(Unix平台最流行的WEB服务器平台)2的配置;
安装完apache(Unix平台最流行的WEB服务器平台)2后,可以在/etc/apache(Unix平台最流行的WEB服务器平台)2/目录下查看文件:
xiaop@xiaop-laptop:
/etc/apache(Unix平台最流行的WEB服务器平台)2$ls-lh
总用量35K
-rw-r–r–1rootroot24K2007-01-1602:
10apache(Unix平台最流行的WEB服务器平台)2.conf
drwxr-xr-x2rootroot1042007-06-1221:
07conf.d
-rw-r–r–1rootroot8952007-01-1602:
11envvars
-rw-r–r–1rootroot02007-05-1717:
34httpd.conf
drwxr-xr-x2rootroot2.5K2007-07-1808:
43mods-available
drwxr-xr-x2rootroot6082007-05-1717:
36mods-enabled
-rw-r–r–1rootroot102007-05-1717:
34ports.conf
drwxr-xr-x2rootroot722007-05-1916:
47sites-available
drwxr-xr-x2rootroot802007-05-1717:
34sites-enabled
3.1apache(Unix平台最流行的WEB服务器平台)2.conf;
apache(Unix平台最流行的WEB服务器平台)2.0的主配置文件为apache(Unix平台最流行的WEB服务器平台)2.conf;我的配置文件保存在/etc/apache(Unix平台最流行的WEB服务器平台)2/apache(Unix平台最流行的WEB服务器平台)2.conf;
查看此文件会在第184行附近发现下面的内容:
#Includemoduleconfiguration:
Include/etc/apache(Unix平台最流行的WEB服务器平台)2/mods-enabled/*.load
Include/etc/apache(Unix平台最流行的WEB服务器平台)2/mods-enabled/*.conf
#Includealltheuserconfigurations:
Include/etc/apache(Unix平台最流行的WEB服务器平台)2/httpd.conf
#Includeportslisting
Include/etc/apache(Unix平台最流行的WEB服务器平台)2/ports.conf
#Includegenericsnippetsofstatements
Include/etc/apache(Unix平台最流行的WEB服务器平台)2/conf.d/
可以看出apache(Unix平台最流行的WEB服务器平台)2根据配置功能的不同,对配置文件进行了分割,这样更利于管理;
3.2conf.d;
下为配置文件的附加片断,默认情况下,仅提供了charset片断,
xiaop@xiaop-laptop:
/etc/apache(Unix平台最流行的WEB服务器平台)2/conf.d$catcharset
AddDefaultCharsetUTF-8
如有需要我们可以将默认编码修改为GB2312,即文件的内容为:
AddDefaultCharsetGB2312
3.3httpd.conf;
通常是一个空文件,以后设置时可以加入以下指令;
下面我们来看一下httpd.conf中的几条指令,“#”后加入了注释说明;
Port80#定义了web服务器的侦听端口,默认值为80,它是TCP网络端口之一。
若写入多个端口,以最后一个为准。
Userapache(Unix平台最流行的WEB服务器平台)#一般情况下,以nobody用户和nobody组来运行web服务器,因为web
Groupapache(Unix平台最流行的WEB服务器平台)#服务器发出的所有的进程都是以root用户身份运行的,存在安全风险。
ServerAdminroot@localhost#指定服务器管理员的E-mail地址。
服务器自动将错误报告到该地址。
ServerRoot/etc/httpd#服务器的根目录,一般情况下,所有的配置文件在该目录下
ServerNamenew.host.name:
80#web客户搜索的主机名称
KeepAliveTimeout15#规定了连续请求之间等待15秒,若超过,则重新建立一条新的TCP连接
MaxKeepAliveRequests100#永久连接的HTTP请求数
MaxClients150#同一时间连接到服务器上的客户机总数
ErrorLoglogs/error_log#用来指定错误日志文件的名称和路径
PidFilerun/httpd.pid#用来存放httpd进程号,以方便停止服务器。
Timeout300#设置请求超时时间,若网速较慢则应把值设大。
DocumentRoot/var/www/html#用来存放网页文件
3.4magic;
文件中包含的是有关mod_mime_magic模块的数据,一般不需要修改它;
3.5ports.conf;
则为服务器监听IP和端口设置的配置文件,
xiaop@xiaop-laptop:
/etc/apache(Unix平台最流行的WEB服务器平台)2$catports.conf
Listen80
3.6mods-available;
目录下是一些.conf和.load文件,为系统中可以使用的加载各种模块的配置文件,而mods-enabled目录下则是指向这些配置文件的符号连接,从配置文件apache(Unix平台最流行的WEB服务器平台)2.conf中可以看出,系统通过mods-enabled目录来加载模块,也就是说,系统仅通过在此目录下创建了符号连接的mods-available目录下的配置文件来加载模块。
同时系统还提供了两个命令a2enmod和a2dismod用于维护这些符号连接。
这两个命令由apache(Unix平台最流行的WEB服务器平台)2-common包提供。
命令各式也非常简单:
a2enmod[module]或a2dismod[module]
3.7sites-available;
目录下为配置好的站点的配置文件,sites-enabled目录下则是指向这些配置文件的符号连接,系统通过这些符号连接来起用站点sites-enabled目录下的符号连接附有一个数字前缀,如000-default,这个数字用于决定启动顺序,数字越小,启动优先级越高.系统提供了两个命令a2ensite和a2dissite用于维护这些符号连接。
这两个命令由apache(Unix平台最流行的WEB服务器平台)2-common包提供;
3.8/var/www;
默认情况下将要发布的网页文件应该置于/var/www目录下,这一默认值可以同过主配置文件中的DocumnetRoot选项修改
4.apache(Unix平台最流行的WEB服务器平台)的管理;
4.1启动和停止apache(Unix平台最流行的WEB服务器平台);
root@xiaop-laptop:
/#/etc/init.d/apache(Unix平台最流行的WEB服务器平台)2start
root@xiaop-laptop:
/#/etc/init.d/apache(Unix平台最流行的WEB服务器平台)2stop
4.2apache(Unix平台最流行的WEB服务器平台)的日志文件;
apache(Unix平台最流行的WEB服务器平台)的日至文件主要包括访问日志和错误日志。
访问日志记录了该服务器所有的请求的过程,主要记录的是客户的信息,通过它我们可以知道什么人访问了该网站,什么时候访问的,访问的内容是什么等等。
错误日志则是记录了服务器出错的细节和如何处理等。
日志文件的位置是由上述主配置文件httpd.conf来规定的。
下面举一个例子来说明它的格式:
一条错误信息:
[Monsep2214:
32:
522003][error][client127.0.0.1]clientdeniedbyserverconfiguration:
/export/home/live/ap/htdocs/test
下面我们来看看这个错误信息都表示什么:
[Monsep2214:
32:
522003]#错误发生的时间
[error]#表示错误的级别。
有debug,info,notice,warn,error,crit,alert,emerg,这些级别由低到高表示了错误的严重性
[client127.0.0.1]#表示客户端IP地址
clientdeniedbyserverconfiguration:
/export/home/live/ap/htdocs/test#标是错误的具体信息
访问日志的写法:
127.0.0.1-xiaop[22/sep/2007:
13:
55:
36-0800]“GET/apache(Unix平台最流行的WEB服务器平台)_pb.gifHTTP/1.0″2002326
注:
127.0.0.1#表示访问这台服务器的客户端IP地址。
xiaop#表示用户的登录名。
[22/sep/2003:
13:
55:
36-0800]#服务器完成客户端请求的时间,格式为[日/月/年:
小时:
分钟:
秒时区]
“GET/apache(Unix平台最流行的WEB服务器平台)_pb.gifHTTP/1.0″#表示客户端访问该资源所使用的方法
200#记录的是服务器返回给客户的状态码;200表示成功,以4打头的表示访问出错
2326#表示发给客户端的总字节数。
若是“—”表示没有找到访问资源
但在实际应用中,对于大型网站,日志文件往往增长的很快,不利于我们查询,降低服务器的效率,而且占用大量的磁盘空间,所以我们必须对日志进行定期的维护;
5.配置虚拟主机;
虚拟主机是在一台www服务器上为多个单独的域名提供www服务,每个域名具有自己的目录和配置,相当于将一台主机分为多台主机,虚拟主机技术对于主机数量不足,但又想为不同的用户提供独立的Web服务的需求非常有效。
而对于一个公司,利用价格昂贵的服务器只提供一种域名服务,似乎是不明智的,而现在越来越多的公司喜欢在一台服务器上使用多个域名服务,架设不同的网站,这样做的好处是显而易见。
apache(Unix平台最流行的WEB服务器平台)有两种方式支持虚拟主机,一种是基于IP的虚拟主机,另一种是基于名字的虚拟主机。
基于名字的虚拟主机使用相同的IP地址来配置不同的虚拟主机,这就弥补了因IP地址不足而带来的问题。
基于名字的虚拟主机的配置相当简单,你只需配置你得DNS服务器使每个主机名对应正确的IP地址,然后再配置apache(Unix平台最流行的WEB服务器平台)HTTPServer使它能认识不同的主机名就可以了。
假设我们组建了一家多媒体制作公司,有一台apache(Unix平台最流行的WEB服务器平台)服务器和一个IP地址:
192.168.1.1要运行两种业务,一种为电子商务网站,域名为,另一种为教学网站,域名为。
先在DNS服务器中把域名和www.teachin….conf就可以了。
NameVirtualHost192.168.0.1
ServerName
DocumentRoot/var/www/html/business
ServerName
DocumentRoot/var/www/html/teaching
而基于IP的虚拟主机则要求使用不同的IP地址来区别不同的虚拟主机,这就要求使用多块网卡,把不同的IP地址捆绑到不同的网卡上,或者在一块网卡上捆绑多个IP地址。
假设我们主机的IP地址为192.168.0.1(),另外有两个IP地址别:
ServerAdminwebmaster@
DocumentRoot/var/www/html/business
ServerName
ErrorLog/var/www/html/business/logs/error_log
TransferLog/var/www/html/business/logs/access_log
ServerAdminwebmaster@
DocumentRoot/var/www/html/teaching
ServerName
ErrorLog/var/www/html/teaching/logs/error_log
TransferLog/var/www/html/teaching/logs/access_log
6.配置apache(Unix平台最流行的WEB服务器平台)代理;
代理服务器是网络信息服务的中转站。
如果我们把apache(Unix平台最流行的WEB服务器平台)代理服务器形象地比喻成代理商的话,消费者向代理商购买东西时,如果代理商有的话,可直接卖给消费者,若没有,则代理商向厂家进货,再卖给消费者。
这样做有以下几点好处:
(1)提高了访问速度;
(2)充当防火墙,增加了安全性;
(3)可以过滤一些不良网站;
(4)具有缓存功能;
(5)节省IP开销;
代理服务器可分为两种类型:
客户端代理和服务器端代理;
下面我们在讲解几个指令后举例说明各自的配置方法;
ProxyRequestOn/Off#启用或者禁用apache(Unix平台最流行的WEB服务器平台)代理服务。
CacheRoot“/etc/httpd/proxy”#代理缓存的根目录。
CacheSize5#代理缓存的大小。
CacheGcInterval4#设定运行管理缓存的无用数据搜集程序的时间间隔
CacheMaxExpire24#文件过期时间。
CacheDefaultExpire1#指定未包含过期信息文件的有效期。
NoCachea-another-domain.edu#该网站的文件将不被缓存。
6.1客户端代理的配置;
(1)修改/etc/httpd/conf/httpd.conf中的相关指令
(2)修改/etc/httpd/conf/httpd.conf,添加对代理目录的访问控制
Orderdeny,allow
Denyfromall
Allowfrom.your-
(3)重启httpd
6.2服务器端代理的配置;
服务器端代理与客户端代理不同,它是在防火墙
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux apache 配置文件 详解