主讲:邓 志 龙 Email:jenod@163.com Linux 网络技术 主讲:邓 志 龙 Email:jenod@163.com
项目13 配置与使用Web服务器 项目背景: 目前,我们单位的网站是由专门的网络公司提供主机代管,网站上数据直接在他人的掌控之下,你觉得安全吗?另一面,由于主机不在本地,访问单位站点速度波动很大,尤其是在上班高峰时期,访问单位站点就如滴水一般。考虑网站安全与网络性能,决定在本单位Ubuntu Linux主机上配置Web服务器。 在Linux平台下应用最广泛的Web服务器是Apache。由于单位部门较多,每个部门都有独立的网站,是否要对每个部门都单独采用一台主机架设Web服务器,回答是否定的。Apache的虚拟主机主要应用于HTTP服务,是将一台机器虚拟成多台WEB服务器,简单说来也就是在一台真机上运行多个Web站点,本项目将要进行就是针对不同应用场合配置不同类型的虚拟主机。
项目10 资源共享 项目分解: 基本任务: 拓展任务: (1)获取与安装Web服务器——Apache; (2)认识Apache配置文件; 项目10 资源共享 项目分解: 基本任务: (1)获取与安装Web服务器——Apache; (2)认识Apache配置文件; (3)配置基于IP的虚拟主机; (4)配置基于端口的虚拟主机。 拓展任务: (1)配置基于域名的虚拟主机; (2)配置使用认证和授权的虚拟主机。
任务1获取与安装Web服务器——Apache 在Ubuntu Linux系统中,使用如下命令安装 Apache 2及其相关工具。 apache2是一个虚拟包,安装这个包,它会根据依赖关系自动安装以下3个相关包:apache2-utils 、apache2-mpm-worker和 apache2.2-common。 student@Ubuntu:~$sudo apt-get install apache2
2.启动服务 3.查看运行状态 使用netstat查看。 student@Ubuntu:~$sudo /etc/init.d/apache2 start student@ubuntu:~$ sudo netstat -tulp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 *:www *:* LISTEN 5477/apache2 ┆
任务2认识Apache配置文件 在进一步的配置前熟悉Apache配置文件是必须的。 1.主要配置文件 Ubuntu 中apache 2的配置文件存放在/etc/apache2目录下。 各个文件或者目录的作用: apache2.conf:主配置文件; conf.d/ :此目录下的所有配置文件都将被主配置文件包含,通常用于添加对主服务或可由各个虚拟主机继承的额外配置; httpd.conf: 用于添加对第三方模块的配置,默认为空; magic mod_mime_magic: 模块所需的 magic 数据,无需配置; mods-available/ :可用的模块的相关配置; mods-enabled/: 当前启用的模块配置; ports.conf: 配置 Apache 监听的 IP 地址和端口; sites-available/: 可用的虚拟主机配置; sites-enabled/: 当前启用的虚拟主机配置。 student@Ubuntu: /etc/apache2$ls apache2.conf envvars mods-available ports.conf sites-enabled conf.d httpd.conf mods-enabled sites-available
2./etc/apache2/apache2.conf文件 Ubuntu下的Apache的主配置文件是 /etc/apache2/apache2.conf,包含MIME文件类型的文件是/etc/mime.types。此外,为了按逻辑分割配置,还可以用Include指令和通配符附加许多其他配置文件。apache2.conf默认添加了如下的配置文件: student@Ubuntu: /etc/apache2$cat apache2.conf ┆ # 包含动态模块的配置: Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf # 包含用户自己的配置: Include /etc/apache2/httpd.conf # 包含端口监听的配置: Include /etc/apache2/ports.conf # 包含一般性的配置语句片断: Include /etc/apache2/conf.d/[^.#]* # 包含虚拟主机的配置指令: Include /etc/apache2/sites-enabled/[^.#]*
3./etc/apache2/sites-enabled与/etc/apache2/sites-enabled目录 student@ubuntu:/etc/apache2/sites-enabled$ ls -l 总用量 0 lrwxrwxrwx 1 root root 36 2008-07-20 21:19 000-default -> /etc/apache2/sites-available/default
任务3配置基于 IP 的虚拟主机 任务目标: 我们习惯于在浏览器中输入域名访问具体网站,在局域网中,通常没有配置DNS服务器,因此使用域名访问局域网络内的Web服务器是不可能的。对于我们单位,通常不同部门分配的IP地址是不一样的,假设信息工程学院的IP地址为192.168.0.8,机电工程学院的IP地址为192.168.0.9,以下说明在 Web服务器上针对IP地址192.168.0.8和 192.168.0.9上创建两个基于IP地址的虚拟主机的配置过程。
1.创建文档目录和测试主页 作为测试index.html文件的内容可以分别为:“信息工程学院”与“机电工程学院”。 student@Ubuntu:~$ sudo mkdir -p /home/www/192.168.0.8/htdocs student@Ubuntu:~$ sudo mkdir -p /home/www/192.168.0.9/htdocs student@Ubuntu:~$ sudo touch /home/www/192.168.0.8/htdocs/index.html student@Ubuntu:~$ sudo touch /home/www/192.168.0.9/htdocs/index.html
2.配置虚拟网络接口 配置虚拟网络接口,把信息工程学院的IP地址对应于192.168.0.8,机电工程学院的IP地址对应于192.168.0.9。 编辑/etc/network/interfaces文件 使用熟悉的编辑器编辑/etc/network/interfaces,添加如下配置: auto eth0:1 iface eth0:1 inet static address 192.168.0.8 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 auto eth0:2 iface eth0:2 inet static address 192.168.0.9
3.配置 Apache 1)在 /etc/apache2/sites-available/ 目录下创建新的文件 ipvhost1 和 ipvhost2 2)在/etc/apache2/sites-available/ipvhost1添加如下的配置 student@Ubuntu:~$ sudo touch /etc/apache2/sites-available/ipvhost1 student@Ubuntu:~$ sudo touch /etc/apache2/sites-available/ipvhost2 <VirtualHost 192.168.0.8:80> DocumentRoot "/home/www/192.168.0.8/htdocs/" <Directory /home/www/192.168.0.8/htdocs/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost>
3)在/etc/apache2/sites-available/ipvhost2添加如下的配置 <VirtualHost 192.168.0.9:80> DocumentRoot "/home/www/192.168.0.9/htdocs/" <Directory /home/www/192.168.0.9/htdocs/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost>
4.启用虚拟主机并重新启动 Apache a2ensite 命令启用虚拟主机,如果要禁用虚拟主机使用命令a2dissite。 直接在浏览器输入对应IP地址,观察测试结果。基于IP 的虚拟主机可以使用 IP 地址和域名访问,如要求域名访问,必须通过BIND 配置 192.168.0.8 和 192.168.0.9 的 A 记录。 student@Ubuntu:~ $ sudo a2ensite ipvhost1 //激活虚拟主机ipvhost1 student@Ubuntu:~ $ sudo a2ensite ipvhost2 student@Ubuntu:~ $ sudo apache2ctl –S //读取配置文件并解析设置结果 student@Ubuntu:~ $ sudo apache2ctl restart
任务4配置基于端口的虚拟主机 我们信息工程学院的多个专业都有自己独立的网站,在Web服务器上只有一个IP地址对应信息工程学院啊,怎样配置的虚拟主机呢?回忆前面端口的概念,如果我的Web服务器能够同时检测多个端口,对同一个部门有多个网站情况,只要把不同的端口对应不同的网站。 在IP地址为192.168.0.8的网络接口创建基于端口(8080端口)的虚拟主机。
1.创建文档目录和测试主页 作为测试index.html文件的内容可以分别为:“信息工程学院端口8080的虚拟主机”。 student@Ubuntu:~$ sudo mkdir -p /home/www/192.168.0.8-8080/htdocs student@Ubuntu:~$ sudo touch /home/www/192.168.0.8-8080/htdocs/index.html
2.配置监听端口 修改 /etc/apache2/ports.conf 文件,添加监听8080端口。 student@Ubuntu:~$ cat /etc/apache2/ports.conf Listen 80 Listen 8080
3.配置 Apache 1) 在 /etc/apache2/sites-available/ 目录下创建新的文件portvhost student@Ubuntu:~$ sudo touch /etc/apache2/sites-available/portvhost <VirtualHost 192.168.0.8:8080> DocumentRoot "/home/www/192.168.0.8-8080/htdocs/" <Directory /home/www/192.168.0.8-8080/htdocs/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost>
4.启用虚拟主机并重新启动 Apache 在浏览器输入对应IP地址:http://192.168.0.8:8080/,观察测试结果。 student@Ubuntu:~ $ sudo a2ensite portvhost student@Ubuntu:~ $ sudo apache2ctl –S //读取配置文件并解析设置结果 student@Ubuntu:~ $ sudo apache2ctl restart
相关知识 初识WWW服务器 WWW 是 World Wide Web (环球信息网)的缩写,也可以简称为 Web,中文名字为“万维网”。它起源于1989年3月,由欧洲量子物理实验室 CERN(the European Laboratory for Particle Physics)所发展出来的主从结构分布式超媒体系统。Web服务是目前互联网最普及的应用技术之一,它能够使各种信息资源快速的被世界各地共享。该技术的独特之处是采用超链接和多媒体信息。Web服务器使用超文本标记语言(hyper text marked language,HTML)描述网络的资源,创建网页,以供Web浏览器使用。HTML文档的特点是交互性。不管是一般文本还是图形,都能链接到服务器上的其他文档,从而使客户快速地搜寻想要的资料。HTML网页还可提供表单供用户填写并通过服务器应用程序提交给数据库。这种数据库一般是支持多媒体数据类型的。
1、统一资源标识符 URI Web 资源是由统一资源标识符(URI)标识的。URI 是个广义概念,它是统一资源定位符(URL)和统一资源定位名称(URN)的超集,并可以由两者分别表示或共同表示。目前,URI 最流行的一种形式就是 URL。
简单地说,URL 就是资源在网上的“地址”。URL 的标准格式如下: 其组成如下: 协议名称 — 所使用的访问协议。如:HTTP、ftp 等; 机器地址 — 数据所在的机器,可以是IP地址,也可以是域名; 端口号 — 请求数据的数据源端口; 路径名 — 数据所在的路径。这个路径是虚路径,不是服务器文件系统中的绝对路径,而是相对的; 文件名 — 请求数据的文件名。 其中,可省略的部分有:端口号、路径名和文件名。 当服务器在标准端口上提供服务时,端口号可以省略; 当访问服务器的根文档资源时,路径名和文件名可以省略; 当访问服务器指定目录下的文档资源时,文件名可以省略。 协议名称://机器地址:端口号/路径名/文件名
下面是几个 URL 的例子: http://www.ubuntu.com http://www.woodpecker.org.cn:9081/ http://192.168.0.5 http://192.168.0.5:8080 http://www.woodpecker.org.cn/diveintopython/index.html ftp://localhost ftp://192.168.0.5:8021
2.Web 的软件组件 Web系统是客户/服务器式的。Web 的软件组件主要包括 Web 浏览器、Web 服务器。 1)Web 浏览器 Web 浏览器是可以生成和发送 Web 请求的客户端应用程序,并通过超文本传输协议 HTTP与Web 服务器相连。目前流行的览器有Internet Explorer和Firefox。 Web 浏览器的职责: 生成一个 Web 请求(通常在单击某个链接点时启动); 通过网络将 Web 请求发送给某个 Web 服务器; 解释服务器传来的 Web 文档,并把结果显示在屏幕上。
2)Web 服务器 Web 服务器的职责: Web 服务器接收来自 Web 客户的 HTTP 请求并将响应结果传输给客户。 接受请求; 请求的合法性检查,包括安全性屏蔽; 针对请求获取并制作数据,包括 Java 脚本、CGI 脚本和 PHP 脚本等、为文件设置适当的 MIME 类型来对数据进行前期处理和后期处理; 把信息发送给提出请求的客户机。
拓展提高 拓展任务: (1)配置基于域名的虚拟主机; (2)配置使用认证和授权的虚拟主机。