您的位置:首页 > 其它

简单Web服务器的用法以及配置信息

2011-08-12 19:13 507 查看
在linux中,要搭建一个web服务器基本上都是基于httpd实现的,所以要想使用web服务器,则需要先安装httpd
yum install httpd

关于httpd的软件包,主要有3种
我们安装的就是最基本的httpd工具
而httpd.i386 是我们的httpd工具
httpd-devel.i386 则是服务器软件包
httpd-manual.i386 则是各种各样的说明文档,帮助文档。

小扩展:

/etc/httpd 目录下保存着所有的配置文件

相关的日志文件都在 /var/log/httpd

相关的模块都在/usr/lib/httpd/modules

相关的pid文件都在/var/run

相关的二进制文件/usr/sbin /usr/bin

服务脚本:/etc/rc.d/init/httpd

而在/etc/httpd目录下

./conf目录:放的是我们主配置文件

./conf.d目录:保存着可以被分为配置文件一部分的,在启动时被加载的,所以这里面所有.conf结尾的文件都会被当做主配置文件加载时候的一部分一起被加载。

当我们安装好httpd,我们就可以开启这个服务来使用了!
service httpd start
service httpd status

开启 httpd服务以及监听
小扩展:

nststat -tnl 我们经常使用这个命令来查看80端口是否已经开启

service httpd reload 而用这条命令在重读配置文件
开启之后我们就可以在自己的浏览器输入我们的ip试试啦!



我们看到了Redhat为我们准备的一个欢迎页,为什么会是这样的呢?

因为其实我们的正确的主页默认在:/var/www/html/目录下的index.html

当我们没有这个文件的时候,他就会自动读取/etc/httpd/conf.d/下的welcome.conf,而这个文件,则就是我们现在看到的主页啦!

==================================================

当然,仅仅能开启,能用,是不行的,我们必须要加入自己的元素,那么怎么做呢?

修改/etc/httpd/conf/httpd.conf文件!

httpd.conf的简单介绍:

首先注意这个配置文件里的所有指令都不区分大小写。但是后面跟的路径将严格区分大小写。



主要配置文件分为三大段:

Section 1 全局配置

Section 2 主服务器的配置

Section 3 关于虚拟主机的



一点一点的来看:

ServerTokens OS

服务器标示,它主要用于定义底下显示什么信息的。(初始化为 OS)

如果想看ServerTokens提供哪些指令,则需要装那个帮助文档包

ServerRoot "/etc/httpd"

主目录装在哪,这个很重要,不能改。后面的相对路径都是根据这个路径来的

Timeout 120

TCP连接的超时时间。(120秒)

KeepAlive Off

是否使用持久连接。

MaxKeepAliveRequests 100

定义最多请求多少对象

KeepAlive Timeout 15

不能让你长期占坑的超时时间。



接下来的这种形式表示它是一个“容器”这个“容器”里的参数只对被定义的一个文件/目录/IP等有效

<IfModuie prefork.c> ##比如这个就是对prefork.c这个c语言的文件有效

StartServers 8

MinSpareServers 5

MaxSpareServers 20

ServerLimit 256 服务器最多允许多少个用户连进来

MaxClients 256 最大并发客户端数

MaxRequestsPerChild 4000 每一个进程最多允许多少请求。

</IfModule>



Listen 80

监听在所有地址的80端口上

LoadModule 这个表明了启用什么模块

格式:LoadModule foo_module modules/mod.foo.so

其实就是 LoadModule 模块名 模块位置

Include conf.d/*.conf

这则就是指定了所有在/etc/httpd/conf.d/下的以conf结尾的文件都可以当配置文件的一部分来使用。

User apache

Group apache

这两个定义安全上下文的时候,用户/组访问进来到底以哪个身份来运行。这里默认是apache身份

ServerAdmin root@localhost

服务器管理员的邮箱地址,可以随便的自定义

ServerName www.a.org

服务器的名字。

DocumentRoot "/var/www/html"

定义默认情况下主服务器中网页文件存放在什么地方(这个是需要我们根据实际情况来修改的)



好吧,我们又遇到了一个“容器”,来看看这个容器是干什么用的。

<Directory "/var/www/html"> 定义某个特定目录在被访问的时候,应该有哪些访问特征的

Options Indexes FollowSymLinks 这里定义了 允许映像文件 和 追踪符号链接。其实这两项暂时对我们都没有什么很大的用途,可以将其改成 None

这个选项还有其他的选择比如:

SynLinksifOwnerMatch 属主匹配的时候允许访问

ExecCGI 是否允许执行这个网站的CGI脚本。

MultiViews 多功能视图 可以显示不同的页面功能。

AllowOverride None

是否允许覆盖,这里的None表示不允许任何人覆盖。主要覆盖什么呢?其实就是定义了是否启用下面这俩,访问控制的,如果是None则启用下面的,如果是其他则屏蔽下面的

Order allow,deny # 定义访问控制

定义允许/不允许如何 这里只能定义一种(允许|不允许)的条件, 而哪项写在后面,那项就是默认。

Allow from all 基于客户端来源的访问控制规则,这里直接Allow from all则定义了所有都允许。



比如:定义,拒绝192.168.0.1访问

Order deny,allow

deny from 192.168.0.1

比如:定义只允许 192.168.0.0/24网段访问

Order allow,deny

Allow from 192.168.0.0/24



<Directory> 结束,标志着我们的容器到头了



OK我们继续~

DirectoryIndex index.html index.html.var

指定主页面叫什么名字,有多个则按顺序一个个的检查。

Errorlog logs/error_log

错误日志的存放位置

这里保存着服务器启动的信息,和发生的错误信息

LogLevel warn

日志级别,只有高于或等于这个级别(warn)的日志才会被记录下来

LogFormat "........"

定义日志格式,每一种格式的名称叫什么。

CustomLog logs/access_log combines

定义访问日志,并以什么格式显示,这里我们用定义好的 combines 格式进行显示。

当我们修改完httpd.conf的时候,我们就可以保存退出了,然后需要运行

httpd -t 来检查一下我们的配置文件是否有语法错误。

当一切OK的了之后,我们就可以重读配置文件来使用了!



------------------------------------------------------------------------

那么我们练习一下:

实现以下应用:

1、网页存放位置:/web/html

2、访问控制列表:仅允许 192.168.0.0/24 访问,且不允许索引文件,但允许使用链接文件

3、使用common格式的访问日志

4、设定可以使用主页面文件为index.php、index.jsp和index.html;

5、设定持久连接的保持时间为3秒钟;

6、设定同时监听80和8080端口;

你是否设置成功了呢?是否遇到了这样的问题呢?

[root@station29 conf]# service httpd start
Starting httpd: Syntax error on line 282 of /etc/httpd/conf/httpd.conf:  
DocumentRoot must be a directory        [FAILED]


好吧,其实我忘了告诉你一个很重要的知识点:

httpd接受了selinux的控制。

我们在使用配置httpd的功能的时候,必须将selinux临时关掉,因为它会发现你企图修改一个灰常重要的文件,所以它会禁止你的~

如何关掉呢?很简单~

setenforce 0

而我们可以使用 getenforce可以查看selinux的状态

Enforcing 表示开着

Permissive 表示关了……

OK,说了这么多,这条命令输入之后,重新启动一次httpd,看看是不是可以了呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐