您的当前位置:首页正文

Linux环境下Web服务器

2023-05-17 来源:伴沃教育


Linux实践及应用(论文)

摘 要:本文详细的讲解了在Linux 环境下安装Web 服务器的方法,包括Apache 服务器软件的安装和配置,以及实现虚拟主机服务的配置,权限的设置方法等内容。 关键词:Linux;Web 服务器;Apache;虚拟主机

前言:W W W(W o r l d W i d e W e b )服务是Internet上最热门的服务之一,通过它用

户可以获得没有时间、地域的限制的各种信息服务,如浏览、搜索和共享信息,商业应用和服务宣传等。现在,每天都有数以百万计的人访问Internet上的信息页,每天又有数以千计的Web服务器被建立起来。个人或公司企业等如果想通过主页向世界介绍自己,就必须将主页放在一个WEB 服务器上,个人用户完全可以使用一些免费的主页空间来发布,但对于多数公司和企业用户来说,都想得到高速而安全的服务,那么就要将主页存放在自己的WEB 服务器上,通过它把主页向外发布。当然,在这之前,要先注册一个域名,申请一个IP 地址,然后让ISP 将这个IP 地址解析到自己的主机上,最后要在主机上架设W E B 服务器。

1、Apache服务器简介

首先是服务器的操作系统的选择,目前主要有Windows 和Unix/Linux 两大阵营,当然二者都有各自的优点和特点,本文选择的是Fedora Linux 平台。在Linux 系统中,我们常用的单独的Web 服务器主要有三种:

(一)CERN httpd:这是最早期的Web 服务器软件。

(二)NCSA httpd:这是美国国家超级计算机应用中心(NCSA)在1995 年创建的WWW服务器。C 语言开发,程序小、速度快,但已经不再升级了。

(三)Apache:据说全世界50% 以上的Web服务器都是用Apache。它是在NCSA 的基础上开发出来的,并一直高速发展着。Apache 的主要特征是: ·可以在任何计算机平台上运行。 ·简单而强有力的基于文件的配置。 ·支持虚拟主机。

·支持H T T P 认证。 ·集成的代理服务器。

·支持安全Socket 层(SSL)。

·支持Java Servlets 和JSP。

目前在Fedora Linux 中已经集成了Apache,它们二者配合使用不仅效果非常好,而且最大的优点是免费,下面介绍的是Fedora Linux + Apache 的组合。

1、 Apache服务器的安装

在初始化Linux安装的时候,Linux发布通常会允许用户选择是否安装Apache Web服务器 这样,所有必须的目录和配置文件都会自动生成。在配置Apache之前,使用命令 rpm –qa | grep httpd 检查系统是否安装了Apache。如果没有安装则通过以下两种方式安装。

(一)通过R P M 包来安装首先要在www.apache.org或其它网站下载apache_2.2.14.rpm(也许这不是目前的最新版本),然后使用命令安装:rpm –ivh apache_2.2.14.rpm。 (二)用源代码编译安装首先下载apache_2.2.14.tar.gz文件,先解压缩然后编译安装,

tar –zxvf apache_2.2.14.tar.gz

cd apache_2.2.14 make

make install

安装完成了之后,在浏览器中输入本机的ip地址,若看到了测试页面,则安装成功。

3、Apache服务器的配置

第1页 共5页

Linux实践及应用(论文)

在Fedora Linux 中,Apache 将自己的所有配置文件和日志文件放在了“/etc/httpd”目录下,其中“/etc/httpd/conf”下为配置文件,“/etc/httpd/log”下为日志文件。Apache的配置文件主要有:“access.conf”:用于设置系统中的存取方式和环境;“httpd.conf”用于设置服务器启动的基本环境;“srm.onf”:主要用于做文件资源上的设定;“mime.type”:记录Apache 服务器所能识别的MIME格式。其实,LINUX 系统已经在安装时就采用了一系列的缺省值,我们可以根据自己的实际情况做一些细微的调整,以更加适合于具体应用。

(一)access.conf的配置

当我们使用“vi”来打开它的时候,我们会发现内容十分繁多,看得人头晕眼花的。请大家一定要明确,凡是最前面是以“# ”号开头的,表示这一行是注释语句,而不是配置文件本身。所以我们把这些注释语句略去不说。 1.该文件的第一段非注释部分如下:

Option Indexes Includes ExecCGI FollowSymLink AllowOverride None Order allow , deny

allow from all

这个部分是以开始,以结束的。这表示在其中间的部分都是针对指定目录——“/home/ttpd/html”而言的。Option 命令有很多的参数,各个参数的意义如下所示:

All:准许以下所有功能(MultiViews除外);

Indexes:若该目录下无index文件,则准许显示该目录下的文件以供选择; Includes:准许SSI;

FollowSymLinks:准许符号链接到其他目录;

ExecCGI:准许该目录下可以使用CGI,而AllowOverride命令则是用来决定是否准许在

“access.conf”文件中设定的权限是否可以被在文件“.htaccess”中设定的权限覆盖。它有两个参数:All 准许覆盖;None 不准许覆盖。

Order 命令:用来设定谁能从这个服务器取得控制。它也有两个参数:allow 可以取得控制;deny 禁止取得控制。这段配置的含义是:对于目录“/ h o m e /httpd/html”来说,当不存在index.htm 文件时,列出目录信息以供选择,准许SSI,允许执行CGI 程序,开启了动态连接。它不允许再使用在文件“.htaccess”中设定来覆盖这里所设置的权限。使所有的人都可以取得控制。

2.该文件的第二段非注释部分如下: Option ExecCGI

AllowOverride None

这个内容表示:在目录“/var/www/cgi”下可以执行CGI 程序。不允许再使用在文 件“.htaccess”中设定来覆盖这里所设置的权限。

(二) httpd.conf 的配置

这个文件中有许多设定命令,用来设置服务器的运行环境。以下是一些常用的部分: 1. ServerType命令,用来设定服务器的启动方式。它的命令格式如下:命令格式: ServerType [standalone/inted]standalone 参数表示WEB 服务进程以一个单独的守候进程的方式在后台侦听是否有客户端的请求,如果有就生成一个子进程来为其服务。inetd 参数表示Web服务

第2页 共5页

Linux实践及应用(论文)

不是以一个单独的守候进程的形式支持。而是由inetd这个超级服务器守候进程进行代劳,当它收到一个客户端的W E B 服务请求的时候,再启动一个W E B 服务进程为其服务。在此建议使用standalone 参数

2. Port 命令,为服务器的服务指定端口号。一般来说,Web 服务使用端口号是80。命 令格式: Port 端口号

3.Server Admin 命令,用来设置管理员的E-Mail 地址。

命令格式: Server Admin [you E-Mailaddress]

4.Timeout命令,只要客户端超过这里设定的秒数还没有完成一个请求的话,服务端将终 止这次请求服务。如果网络速度较慢的话,建议在此设置较大的数值。以给客户端更多机会。 命令格式: Timeout [second]

5.MaxClients 命令,用来设置接受客户端请求的最大数目,以使得维护系统稳定性,避免系统负载过大。命令格式: MaxClients [number]

6.设置主服务器的名称,默认是 # www.example.com ,此处我们可以输入一个合法的名字即域名即可,也可以输入主机的ip地址,然后去掉前面的#号即可。

(三)srm.conf 的配置

这个文件主要用来指定主页文档的位置。下面介绍三个最常用的命令。 1. DocumentRoot 命令,用来指定主文档的地址。

例:DocumentRoot /var/httpd/html

2. UserDir 命令,用来指定个人主页的位置。如果有一个用户test,那么它的主目录是“/h o m e / t e s t ”,当客户端输入 h t t p : / /yourdomain/~test”,系统就会到对应的目录“/h o m e / t e s t / U s e r D i r /”中去寻找。其中“UserDir”就是在UserDir命令中设置的指定目录。例: UserDir Public_html

3. DirectoryIndex命令,用来设置首页文件名称。一般地,我们使用“index.html”或“index.htm”作为首页的文件名。例:DirecotryIndex index.htm通过上面的介绍,我们可以根据自己的实际情况来更改配置文件,使Apache 按照自己的要求正常工作,需要说明一下的是,在更改配置之后需要重新启动Apache 来使新的配置生效,输入以下命令来实现: /etc/rc.d/init.d/httpd restart最后,我们就可以把主页复制到配置文件中指定的目录中,然后在工作站上打开浏览器,输入服务器IP地址/index.htm,看看是不是可以正常浏览了,如果可以,说明一个基本的Web服务器已经建立起来了。 (四)测试服务器是否正常运行

在命令行下输入 # service httpd tart # service httpd stop

# service httpd start

在目录 var/www/html/下新建一个index.html 文件,在浏览器中输入http://本机ip/。 如果能看到自己的网页,则表示服务器配置成功。

4、基于域名的虚拟主机配置

Apache 实现基于主机名的虚拟主机服务(一个IP 地址实现多个网站)例:如果服务器只有一个IP 地址,而在DNS中有很多映射到这个机器,我们想要在这个机器上运行www.gyabc.com 和www.gy.com 两个站点。在Apache 服务器的配置中创建一个虚拟主机并不会自动在DNS中对主机名做相应更新,我们必须自己在DNS 中添加域名来指向我们的IP地址,否则别人是无法看到我们的Web 站点的。

NameVirtualHost 172.16.37.177

第3页 共5页

Linux实践及应用(论文)

ServerName www.gyabc.com:80 DocumentRoot /var/www/gy1 DirectoryIndex index.html

ServerName www.gy.com:80 DocumentRoot /var/www/gy2 DirectoryIndex index.html

NameVirtualHost IP指明该虚拟主机对应的IP 地址, 构成该虚拟主机的语法结构,其中的域名就是我们在服务器上上传的网页要解析的域名。配置完成后需要配置DNS服务器进行域名解析,最后用户可以通过www.gyabc.com和www.gy.com 来访问上传到Apache服务器两个网站。

5、实验中遇到的问题和心得体会

在配置htttpd.conf文件时,不知道ServiceName处填写什么名字,因为要求格式为类似网址形式的域名,所有我在其中输入了 ServiceName www.mytrek.com:80,在测试时,浏览器却给我连接到了国外一个域名购买商店。后来,我就在命令下输入 ifconfig 结果显示了两个 innet ip ,我就见上述域名改成了 ServiceName 我的主机ip:80,结果测试时,都能显示我在/var/www/html 目录下的主页。我不明白这两个ip和我的Apache服务器有什么关系。通过写论文,使我更加了解了Linux和Apache的相关知识,也提高了我操作Linux系统的能力。

参考文献:

[1] 钟小平,张金石. 网络服务配置与应用[M] . 北京:人民邮电出版社,2002

[2] Michael Jang 《红帽Linux 9 从入门到精通》 电子工业出版社2003 年10 月 第659 至695 页

[3] 罗文村,汤庸. Linux时间与应用. 北京:清华大学出版社,2006

第4页 共5页

第9页 共5页

因篇幅问题不能全部显示,请点此查看更多更全内容