Linux网络实战 (二) ——WWW服务器搭建

Linux网络实战 (二) ——WWW服务器搭建

安装WWW服务软件

  目前最主流的三个Web服务器是HttpdNginxIIS

  Httpd是一个开源软件,且一般用作Web服务器来使用。目前最流行的Web服务器软件叫做httpd,在早期的Http server就叫做Apache,到了Http server 2.0以后就改名为Httpd了。所以有时候听到Apache服务器和Httpd服务器其实都是指的是一个意思。

  HttpdApache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。

  Linux系统安装软件和Windows系统上安装软件不太一样,在Windows上只需要下载需要安装的软件二进制文件(常见的格式是.exe),然后双击即可进行安装。而Linux系统上安装软件的常见方式有如下几种:

	1. 源码编译安装

	2. 软件包安装

	3. 在线安装

  源码安装步骤是下载源码到本机,然后对源码进行编译,生成可执行文件,然后将生成的可执行文件拷贝到对应的安装目录即可,常见的软件源码包格式为.tar.gz.tar.bz2等;

  软件包安装步骤是下载好已经编译好的可执行文件包,然后使用对应的包管理工具进行安装,不同的Linux系统使用不同的包管理工具,常见包管理工具如下所示:

	1. Ubuntu/Debian 系统使用 dpkg 行管理软件包(软件包的后缀为.deb)2. Redhat/CentOS 系统使用 rpm 进行管理软件包(软件包的后缀为.rpm)

  在线安装是指不需要用户亲自下对应软件的包,但是需要对应系统能够访问互联网,不同的Linux系统使用不同的工具进行在线安装软件,常见的在线安装软件的工具如下所示:

	1. Ubuntu/Debian 系统使用 apt-get 进行在线安装软件;

	2. Redhat/CentOS 系统使用 yum 进行在线安装软件;

  建议使用在线安装软件,离线安装软件常见的问题是软件间的依赖问题,如果离线安装软件,则必须要手动安装依赖的库,而在线安装则只需要一条命令完成所有的操作,在线安装会自动去安装依赖库;


源码安装Httpd

Httpd软件依赖如下3个软件包,所以在安装Httpd软件前,需要先安装如下3个软件。

  1. arpApache可移植运行时库,支持跨平台,其内存管理模块被itrans引擎使用。
  2. apr-util:是APR开发包中一个衍生版。
  3. pcre:一个Perl库,包括perl兼容的正则表达式库。

安装apr依赖包步骤如下所示:

1. 解压源码包:tar zxvf apr-1.4.5.tar.gz
2. 进入源码文件夹:cd apr-1.4.5/
3. 配置(生成Makefile)./configure --prefix=/usr/local/apr
4. 编译源码:make
5. 安装源码:sudo make install

img

[配置成功执行结果(./configure --prefix=/usr/local/apr)] img

[安装成功结果]

安装apr-util依赖包步骤如下所示:

	1. 解压源码包:tar zxvf apr-util-1.3.12.tar.gz
	2. 进入源码文件夹:cd apr-util-1.3.12/
	3. 配置(生成Makefile)./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config 
	4. 编译源码:make
	5. 安装源码:sudo make install

img

[配置成功执行结果(./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr/bin/apr-1-config)] img [安装成功结果]

安装pcre依赖包步骤如下所示:

	1. 解压源码包:unzip pcre-8.10.zip
	2. 进入源码文件夹:cd pcre-8.10/
	3. 配置(生成Makefile)./configure --prefix=/usr/local/pcre
	4. 编译源码:make
	5. 安装源码:sudo make install

img

[配置成功执行结果(./configure --prefix=/usr/local/pcre)] img [安装成功结果]

下载Httpd源码包,此处使用的是httpd-2.4.27.tar.gz

具体安装步骤如下所示:

	1. 解压源码包:tar xvfj httpd-2.4.27.tar.bz2
	2. 进入源码文件夹:cd httpd-2.4.27/
	3. 配置(生成Makefile)./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ -with-pcre=/usr/local/pcre
	4. 编译源码:make
	5. 安装源码:sudo make install

img

[配置成功执行结果(./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ -with-pcre=/usr/local/pcre)] img
[安装成功结果]

至此源码安装httpd软件结束,如果正确安装,则可以执行apachectl命令启动服务:

img


在线安装Httpd

  环境使用的系统是Ubuntu,所以使用apt-get工具来在线安装软件,具体步骤如下所示:

	1. 更新软件源:sudo apt-get update

	2. 安装httpd:sudo apt-get install apache2

如果安装成功则会出现如下界面:
img

注意:如果当前用户是root,则执行以上安装命令时不需要加sudo


WWW服务器启动/关闭

  当安装成功Httpd软件后,默认Httpd服务是关闭的。此时,如果需要访问本地搭建的网站时,必须开启Httpd服务。

  环境使用的系统是Ubuntu,当使用apt-get在线安装软件后,通常会在/etc/init.d/目录下生成一个启动该服务软件的脚本,例如,使用apt-get安装Httpd软件后,可以看到在/etc/init.d/目录下生成一个名为apache2的脚本文件,该脚本可以用来控制Httpd服务的启动与关闭等信息。

img

[Httpd服务脚本文件]


Linux service 命令

Linux系统中使用service命令来控制系统服务,它可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

service命令的使用格式:

service 服务名 控制命令
  • 服务名:自动要控制的服务名,即/etc/init.d目录下的脚本文件名;
  • 控制命令:系统服务脚本支持的控制命令。

常见的控制命令:

	start:启动该服务;

	stop:关闭该服务;

	restart:重新启动该服务;

	status:查看该服务状态;

Linux网络实战 (二) ——WWW服务器搭建注意并不是所有的服务都支持以上4种控制命令,不同的服务提供不同的控制命令,大多数服务都支持以上4种常用的控制命令。
  


Httpd服务管理

当成功安装Httpd后,会使用service命令来管理Httpd服务。

查看Httpd服务状态

查看Httpd服务状态,可以使用如下命令:

sudo service apache2 status

img
可以看到当前Httpd服务处于NOT running状态,也就是关闭状态。

启动Httpd服务

启动Httpd服务并且查看是否启动成功,可以使用如下命令:

sudo service apache2 start
    
sudo service apache2 status

img

可以看到Httpd服务处于running状态,并且进程ID号为4028

重新启动Httpd服务

重新启动Httpd服务并且查看是否重新启动成功,可以使用如下命令:

sudo service apache2 restart

sudo service apache2 status

img
可以看到当前Httpd服务被重新启动,并且新的进程ID号也变为了4150

关闭Httpd服务

关闭Httpd服务并且查看是否关闭成功,可以使用如下命令:

sudo service apache2 stop

sudo service apache2 status

img

可以看到Httpd服务处于NOT running状态,也就是关闭状态。

注意:如果当前用户是root,则执行以上命令时不需要加sudo


WWW服务器配置

  在开始设置Apache2之前,我们知道只要我们启动了Httpd服务后,我们只需在浏览器中输入localhost或者127.0.0.1即可打开一个默认的静态网页,如下图所示。

img

以上的操作流程大致分为如下几步:

  1. 通过HTTP协议去连接上述IP地址的服务器系统,默认使用80端口(默认的端口是80,也有其他端口,如果使用默认端口则不需要显示输入80端口)请求Apache服务器相应目录下的html文件;

  2. Apache服务器收到用户的请求后,在它管理的文档目录中找到并打开相应的html文件,将文件内容响应给客户端浏览器即可;

  3. 浏览器收到Web服务器的响应后,接收并下载服务器端的html静态代码,然后浏览器解读代码,最终将网页呈现出来。

以上为请求一个网页的大致步骤,接下来我们来学习如何配置Apache服务器,例如修改默认请求端口。

Apache提供多个配置文件,每个配置文件中的内容都不同,常见使用到的配置文件有如下几个:

/etc/apache2/apache2.conf:

主配置文件;/etc/apache2/ports.conf:

配置端口的文件;/etc/apache2/sites-enabled/000-default.conf:

配置Web文档根目录的文件;

Apache2配置文件介绍

  /etc/apache2/apache2.confApache2的主配置文件,里面存放的配置项是全局的配置项,常见的配置项有如下几个:

	Timeout:设置服务器在断定请求失败前等待的秒数。默认值300KeepAlive:设置是否启用HTTP持久链接,On 代表打开,Off 代表关闭;

	MaxKeepAliveRequests:限制当启用

	KeepAlive时,每个连接允许的请求数量。如果将此值设为"0",将不限制请求的数目;

	KeepAliveTimeout:设置持久链接中服务器在两次请求之间等待的秒数;

Apache2其它配置文件

/etc/apache2/ports.confApache2的端口配置文件,里面存放的Apache监听的端口,其中Listen配置项是用来配置监听的端口。

/etc/apache2/sites-enabled/000-defaultApache2用来设置虚拟主机目录的配置文件,简单的理解就是用来设置部署的网站信息,如下图所示。

[/etc/apache2/sites-enabled/000-default文件内容]:img

关键字解释:

	<VirtualHost *:80>:表示的是一个虚拟的主机,其中80表示其访问端口;

	DocumentRoot:表示该虚拟主机的文档根目录,也就是我们网页存放的目录;

	<Directory /var/www/>:表示根目录的一些属性配置;

实例1:

默认情况下Apache2服务器是使用80端口,现在我们将默认端口修改为8080,具体使用如下步骤:

	1. 设置 Listen8080(sudo vim /etc/apache2/ports.conf)
	2. 修改 <VirtualHost *:80><VirtualHost *:8080>(sudo vim /etc/apache2/sites-enabled/000-default)
	3. sudo service apache2 restart
	4. 打开浏览器输入:localhost:8080

[修改ports.conf文件] :
img

[修改000-default文件] :img

[使用浏览器访问localhost:8080地址] :img

[使用浏览器访问localhost地址]:img

可以看到再次使用80端口进行访问时,无法正常访问,因为此时Apache2监听的是8080端口。

实例2

配置Apache2同时监听两个端口,一个是80,另一个是8080,这两个端口都同时访问默认的静态网页,具体使用如下步骤:

	1. 添加 Listen80 (sudo vim /etc/apache2/ports.conf)
	2. 添加 <VirtualHost *:80>(sudo vim /etc/apache2/sites-enabled/000-default)3.<VirtualHost *:8080> 结构下的内容完全复制一份,然后只需将复制出来的结构的 8080 修改成 80 即可
	4. sudo service apache2 restart
	5. 打开浏览器输入:localhost:8080
	6. 打开浏览器输入:localhost:80

[修改ports.conf文件] :
img

[修改000-default文件] :img

[使用浏览器访问localhost:8080地址] :img

[使用浏览器访问localhost地址]:img

可以看到此时访问808080端口显示的结果是一样的,说明Apache2此时同时监听这两个端口的请求。

实例3:

修改80端口所监听的网站根目录为/var/www/html,同时将默认网页内容进行修改,具体使用如下步骤:

	1. sudo mkdir /var/www/html
	2. sudo touch /var/www/html/index.html
	3. 向文件 /var/www/html/index.html 添加内容:
					This is my first web!(sudo vim /var/www/html/index.html)
	4. 设置 <VirtualHost *:80>(sudo vim /etc/apache2/sites-enabled/000-default) ,
					将 <VirtualHost *:80> 结构下的所有 /var/www 修改 /var/www/html
	6. sudo service apache2 restart
	7. 打开浏览器输入:localhost:80

[添加内容/var/www/html/index.html] :
img

[修改000-default文件] :img

[使用浏览器访问localhost地址]:img


over

  • 11
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
目 录 完整诠释Nginx 分享Nginx的实战经验 不可多得的Nginx一手资料 联系博文视点 序言 第1部分 基础篇 第1章 Nginx简介 1.1 常用的Web服务器简介 1.2 Nginx的发展 1.3 选择Nginx的理由 1.4 Nginx与Apache、 Lighttpd的综合对比 第2章 Nginx服务器的安装与配置 2.1 安装Nginx服务器所需要的系统资源 2.2 Nginx的下载 2.3 Nginx的安装 2.4 Nginx的启动、 停止、 平滑重启 2.5 Nginx的平滑重启 2.6 Nginx的信号控制 2.7 Nginx的平滑升级 第2部分 进阶篇 第3章 Nginx的基本配置与优化 3.1 Nginx的完整配置示例 3.2 Nginx的虚拟主机配置 3.3 Nginx的日志文件配置与切割 3.4 Nginx的压缩输出配置 3.5 Nginx的自动列目录配置 3.6 Nginx的浏览器本地缓存设置 第4章 Nginx与PHP( FastCGI) 的安装、 配置与优化 4.1 获取相关开源程序 4.2 安装PHP 5.2.10( FastCGI模式) 4.3 安装Nginx 0.8.15 4.4 配置开机自动启动Nginx+PHP 4.5 优化Linux内核参数 4.6 在不停止Nginx服务的情况下平滑变更Nginx配置 4.7 编写每天定时切割Nginx日志的脚本 第5章 Nginx与JSP、 ASP.NET、 Perl的安装与配置 5.1 Nginx与JSP( Tomcat) 在Linux上的安装、 配置 5.2 Nginx与ASP.NET( Mono+FastCGI) 在Linux上的安装、 配置 5.3 Nginx与Perl( FastCGI) 在Linux上的安装、 配置 第6章 Nginx HTTP负载均衡和反向代理的配置与优化 6.1 什么是负载均衡和反向代理 6.2 常见的Web负载均衡方法 6.3 Nginx负载均衡与反向代理的配置实例 6.4 Nginx负载均衡的HTTP Upstream模块 6.5 Nginx负载均衡服务器的双机高可用 第7章 Nginx的Rewrite规则与实例 7.1 什么是Nginx的Rewrite规则 7.2 Nginx Rewrite规则相关指令 7.3 PCRE正则表达式语法 7.4 Nginx的Rewrite规则编写实例 7.5 Nginx与Apache的Rewrite规则实例对比 第8章 Nginx模块开发 8.1 Nginx模块概述 8.2 Nginx模块编写实践 第9章 Nginx的Web缓存服务与新浪网的开源NCACHE模块 9.1 什么是Web缓存 9.2 Nginx的Web缓存服务 9.3 新浪网开源软件项目——基于Nginx的NCACHE网页缓存系统 第3部分 实战篇 第10章 Nginx在国内知名网站中的应用案例 10.1 Nginx反向代理与负载均衡类网站应用案例 10.2 Nginx+PHP类网站应用案例 10.3 Nginx视频点播类网站应用案例 第11章 Nginx的非典型应用实例 11.1 用HTTPS( SSL) 构建一个安全的Nginx Web服务器 11.2 采用Nginx搭建FLV视频服务器 11.3 Nginx+PHP+MySQL在小内存VPS服务器上的优化 11.4 采用Nginx搭建正向代理服务器 第4部分 模块篇 第12章 Nginx的核心模块 12.1 主模块指令 12.2 主模块变量 12.3 事件模块指令 第13章 Nginx的标准HTTP模块 13.1 HTTP的核心模块 13.2 HTTP Upstream模块 13.3 HTTP Access模块 13.4 HTTP Auth Basic模块 13.5 HTTP Autoindex模块 13.6 HTTP Browser模块 13.7 HTTP Charset模块 13.8 HTTP Empty Gif模块 13.9 HTTP Fcgi模块 13.10 geo模块 13.11 Gzip模块 13.12 HTTP Headers模块 13.13 HTTP Index模块 13.14 HTTP Referer模块 13.15 HTTP Limit Zone模块 13.16 HTTP Limit Req模块 13.17 HTTP Log模块 13.18 HTTP Map模块 13.19 HTTP Memcached模块 13.20 HTTP Proxy模块 13.21 HTTP Rewrite模块 13.22 HTTP SSI模块 13.23 HTTP Userid模块 第14章 Nginx的其他HTTP模块 14.1 HTTP Addition模块 14.2 Embedded Perl模块 14.3 Flv Stream模块 14.4 HTTP Gzip Static模块 14.5 HTTP Random Index模块 14.6 HTTP Geo IP模块 14.7 HTTP RealIp模块 14.8 HTTP SSL模块 14.9 HTTP Stub Status模块 14.9.1 stub_status指令 14.10 HTTP Sub模块 14.11 HTTP Dav模块 14.12 Google Perftools模块 14.13 HTTP XSLT模块 14.14 HTTP Secure Link模块 14.15 HTTP Image Filter模块 第15章 Nginx的邮件模块 15.1 Nginx邮件核心模块 15.2 Nginx邮件认证模块 15.3 Nginx邮件代理模块 15.4 Nginx邮件SSL模块 15.5 Nginx邮件模块配置实例 索引 参考资料 编辑手记 《 实战Nginx: 取代Apache的高性能Web服务器》 读者交流区 勃勃生机, 潇洒开源 反侵权盗版声明 实战Nginx: 取代Apache的高性能Web服务器
Linux服务器配置与管理项目7 WWW服务器配置与管理 Linux服务器配置与管理项目7--WWW服务器配置与管理全文共87页,当前为第1页。 【项目描述】 公司为方便对外和对内发布信息,需要一台WWW服务器。WWW服务器的域名为www.zzrvtc.com,能够实现基本信息浏览,虚拟主机、个人主页、虚拟目录、权限控制、身份认证等功能。 本项目中我们来完成WWW服务器的配置与管理任务。 Linux服务器配置与管理项目7--WWW服务器配置与管理全文共87页,当前为第2页。 【学习目标】 (1)了解WWW服务器在网络中的作用。 (2)掌握WWW服务器的安装过程。 (3)掌握各种WWW服务器功能的配置。 (4)掌握Web网站和虚拟主机的配置。 Linux服务器配置与管理项目7--WWW服务器配置与管理全文共87页,当前为第3页。 预备知识 认识WWW服务器 Linux服务器配置与管理项目7--WWW服务器配置与管理全文共87页,当前为第4页。 1.WWW服务 WWW(World Wide Web,简称Web)服务是一种建立在超文本基础上的浏览、查询因特网信息的方式,它以交互方式查询并且访问存放于远程计算机的信息,为多种因特网浏览与检索访问提供一个单独一致的访问机制。Web页面将文本、超媒体、图形和声音结合在一起。因特网给企业带来通信与获取信息资源的便利条件。 WWW服务采用客户机/服务器结构,整理和存储各种WWW资源,并响应客户端软件的请求,把所需的信息资源通过浏览器传送给用户。 Linux服务器配置与管理项目7--WWW服务器配置与管理全文共87页,当前为第5页。 1.WWW服务 WWW服务所用到的协议有超文本传输协议(Hypertext Transfer Protocol,HTTP)与超文本标记语言(Hypertext Markup language,HTML)。其中,HTTP是WWW服务使用的应用层协议,用于实现WWW客户机与WWW服务器之间的通信;HTML语言是WWW服务的信息组织形式,用于定义在WWW服务器中存储的信息格式。 Linux服务器配置与管理项目7--WWW服务器配置与管理全文共87页,当前为第6页。 2.HTTP协议 HTTP(Hyper Text Transfer Protocol)超文本传输协议,是用于从WWW服务器传输超文本到本地浏览器的传送协议。HTTP是一个应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP 1.1,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。 Linux服务器配置与管理项目7--WWW服务器配置与管理全文共87页,当前为第7页。 2.HTTP协议 HTTP协议采用客户端/服务端架构。浏览器作为HTTP客户端通过URL向HTTP服务端即Web服务器发送所有请求。Web服务器接收到请求后,向客户端发送响应信息。 如今的Web服务可以分为两种:静态Web服务和动态Web服务。其中动态Web服务更为流行。动态Web服务需要后台数据库服务器的支持。 Linux服务器配置与管理项目7--WWW服务器配置与管理全文共87页,当前为第8页。 2.HTTP协议 我们以访问http://www.zzrvtc.com网站为例,其使用HTTP协议的工作流程如图所示。 Linux服务器配置与管理项目7--WWW服务器配置与管理全文共87页,当前为第9页。 任务一 安装Apache服务器 Linux服务器配置与管理项目7--WWW服务器配置与管理全文共87页,当前为第10页。 任务提出 要想使WWW服务器顺利运行,首先需要安装好所需要的软件包。本次任务主要安装WWW服务器所需要的软件包ApacheLinux服务器配置与管理项目7--WWW服务器配置与管理全文共87页,当前为第11页。 任务分析 开放源代码的Apache(阿帕奇)是一个Web服务器软件,起初是由伊利诺伊大学香槟分校的国家超级计算机应用中心(NCSA)开发的,此后,Apache被开放源代码团体的成员不断地发展和加强。Apache服务器拥有牢靠、可信的美誉,可以在大多数计算机操作系统中运行,由于其多平台和安全性的特点被广泛使用,是最流行的Web服务器软件之一。 Linux服务器配置与管理项目7--WWW服务器配置与管理全文共87页,当前为第12页。 任务分析 Apache支持众多功能,这些功能绝大部分都是通过编译模块实现的。这些特性包括从服务器端的编程语言支持到身份认证方案。 一些通用的语言接口支持perl、python和PHP,流行的认证模块包括mod_access、rood_aut
好的,下面是回复: 在Linux网络实战)中,我们学习了如何搭建一个Web服务器。Web服务器是用于提供网站服务的服务器,我们可以使用Apache或Nginx等软件来搭建。在本教程中,我们使用了Apache来搭建Web服务器。 首先,我们需要安装Apache软件。在Ubuntu系统中,可以使用以下命令进行安装: sudo apt-get install apache2 安装完成后,我们需要配置Apache。配置文件位于/etc/apache2/目录下,我们可以通过修改配置文件来配置Apache。例如,我们可以修改/etc/apache2/sites-available/default文件来配置默认网站。 配置完成后,我们可以将网站文件放置在/var/www/html/目录下。在该目录下创建一个index.html文件,内容为“Hello World!”。然后,我们可以使用浏览器访问服务器的IP地址,就可以看到“Hello World!”的页面了。 除了搭建简单的静态网站,我们还可以使用PHP等语言来开发动态网站。在Ubuntu系统中,可以使用以下命令安装PHP: sudo apt-get install php libapache2-mod-php 安装完成后,我们可以在/var/www/html/目录下创建一个index.php文件,内容为: <?php echo "Hello World!"; ?> 然后,我们可以使用浏览器访问服务器的IP地址,就可以看到“Hello World!”的页面了。 总之,搭建Web服务器是Linux系统中非常基础的操作,掌握这个技能对于学习Linux系统和Web开发都非常有帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值