qian奇岸微信二维码 如您需要快速报价 请加技术经理微信 服务热线
13501992972
"MENU"
首页 > 开发知识 > 正文

服务器技术网站:web服务器 IIS、Apache和Ngnix基础

奇岸开发
ahqian.com
12/03/2022
wechat

无需加好友免费技术支持



导语:人往高处走,水往低处流。技术发展往高层堆叠,技术学习则往底层深处探索。

参考文章:

1、 百度百科:

IIS:

Apache:

Nginx:

2、 博客:

3、 菜鸟教程:

学习是具有主观能动性的一种行为(学习是需要目的的),为什么要学习并了解web服务器呢?在之前的文章中,我已经能在自己的电脑上开发出简单的web网站了,但是网站具体是怎么在电脑上运行的,却不得而知,如果要把网站发布给其它的网友看又该怎么办呢?这篇文章就是为了尝试回答这些问题的。

链接文章:

a、php基础知识

b、web客户端编程基础-HTML、CSS

c、web客户端编程基础-JavaScript

d、数据库基础笔记-SQL

e、 web网站开发基础

来源:

1989年,互联网之父Berners-Lee向其雇主CERN提出了一个新项目,目的是通过使用超文本系统来缓解科学家之间的信息交流。该项目导致Berners-Lee在1990年编写了两个方案:

a、一个名为WorldWideWeb的浏览器。

b、世界上第一个网络服务器,后来被称为CERN httpd,它运行在NeXTSTEP上。在1991年至1994年期间,用于通过万维网冲浪和交换数据的早期技术的简单性和有效性有助于将其移植到许多不同的操作系统,并将其用于科学组织和大学,然后传播到行业。

1994年,Berners-Lee决定组建万维网联盟(W3C),通过标准化过程来管理涉及的许多技术(HTTP,HTML等)的进一步发展。

功能定义:

Web服务器的主要功能是存储,处理和传递网页给客户。客户端和服务器之间的通信使用超文本传输??协议(HTTP)进行。交付的页面最常见的是HTML文档,除了文本内容之外,还可能包含图像,样式表和脚本。

一个用户代理,通常是web浏览器或web爬虫,通过发起一个HTTP请求以获取服务器资源,服务器根据请求返回该资源或由于某种原因响应错误消息。

虽然主要功能是提供内容,但HTTP的完整实现还包括从客户端接收内容的方式。此功能用于提交Web表单,包括上传文件。许多通用Web服务器还支持使用Active Server Pages(ASP),PHP或其他脚本语言的服务器端脚本。这意味着Web服务器的行为可以在单独的文件中脚本化,而实际的服务器软件保持不变。通常,此函数用于动态生成HTML文档(“即时”),而不是返回静态文档。前者主要用于从数据库检索或修改信息。后者通常快得多,并且更容易被缓存,但不能提供动态内容。

Web服务器不仅用于为万维网服务。它们也可以被嵌入到诸如打印机,路由器,网络摄像机等设备中,并且仅服务于本地网络。然后,web服务器可以用作用于监视或管理所讨论的设备的系统的一部分。这通常意味着客户端计算机上不需要安装其他软件,因为只需要一个网络浏览器(现在大多数操作系统都包含在内)。

web服务器工作原理:

HTTP协议基于TCP协议上,是一个应用层协议,用于用户代理和Web服务器进行通信。Web服务器通常采用一问一答的方式进行工作。

主流web服务器:Apache、IIS、Nginx

在Web服务器发展的同一个时期,应用服务器已经存在并发展很长一段时间了。一些公司为Unix开发了Tuxedo(面向事务的中间件)、TopEnd、Encina等产品,这些产品都是从类似IMS和CICS的主机应用管理和监控环境衍生而来的。大部分的这些产品都指定了“封闭的”产品专用通信协议来互连胖客户机(“fat” client)和服务器。在90年代,这些传统的应用服务器产品开始嵌入HTTP通信功能,刚开始要利用网关来实现。不久后它们之间的界线开始变得模糊了。

同时,web服务器越来越成熟,可以处理更高的负载、更多的并发和拥有更好的特性;应用服务器开始添加越来越多的基于HTTP的通信功能。所有的这些导致了web服务器与应用服务器的界线变得更窄了。

目前,“应用服务器”和“web服务器”之间的界线已经变得模糊不清了。但是人们还把这两个术语区分开来,作为强调使用。

当有人说到“web服务器”时,你通常要把它认为是以HTTP为核心、web UI为向导的应用。当有人说到“应用服务器”时,你可能想到“高负载、企业级特性、事务和队列、多通道通信(HTTP和更多的协议)”。但现在提供这些需求的基本上都是同一个产品。

那么什么是容器呢?

容器是位于应用程序/组件和服务器平台之间的接口集合,使得应用程序/组件可以方便部署到服务器上运行。

Web服务器的出现的标志着WWW时代的带来,世界变得更加平面化。当初尝到甜头的开创者们开始不满足与在互联网上获取静态资源,于是出现了CGI脚本来动态获取资源。再后来网络发展方向也是朝着增强Web服务器动态获取资源的能力前进。代表性的动态技术:CGI(Common Gateway Interface,公用网关接口)、PHP、JSP、ASP

反向代理是代理服务器的一种。它根据客户端的请求,从后端的服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端。与前向代理不同,前向代理作为一个媒介将互联网上获取的资源返回给相关联的客户端,而反向代理是在服务器端(如Web服务器)作为代理使用,而不是客户端。客户端通过前向代理可以访问很多不同的资源,而反向代理是很多客户端都通过它访问不同后端服务器上的资源,而不需要知道这些后端服务器的存在,而以为所有资源都来自于这个反向代理服务器。

Web服务器是提供WWW服务的程序;Web容器是提供给开发者的框架;Web应用程序服务器内容丰富得多,既可用各厂商通常遵循一定的工业标准并自定义扩展功能而成,也可以利用开源组件轻量级拼装打造;反向代理服务器在企业级应用中表现突出,具有解决集中式安全,负载均衡等等优点。

IIS(Internet Information Services) 是一个支持HTTP和FTP发布服务的Web服务器。它是由微软开发的web服务器,需要收费,主要用来跑asp.net asp php,只能在windows下运行。

在稳定性上来说,IIS在实际使用中经常出现500错误,而且有时候会出现莫名其妙的假死现象,用户需要不定期的重新启动IIS服务才能保证网站的正常。安全性来说,IIS6以前的版本有安全隐患,之后的版本已经优化。因为IIS是Windows系统的一部分,所以并不开源,但是这好处是对熟悉windows的用户来说,配置和开启操作简单。

首先,操作系统是windows

Vista开启IIS 7.0

在Vista中,我们可以看得到新版本的IIS 7.0看上去比6.0有了很大的改进。你可以自由开启IIS 7.0,并在个人电脑上架设自己的网站。

下面是开启方法:

1、热键WinKey+R—输入"cmd.exe" (不带引号)。

2、输入下列命令:

start /w pkgmgr.exe /iu:IIS-WebServerRole;IIS-WebServerFeature;IIS-FTPServerFeature

然后,就会自动安装IIS 7.0。而且,IIS 7.0已经完全组件化,类似于Apache。

Win7开启IIS 7.0

默认情况下,windows7安装时是不会自动安装iis,只能手动安装,需要有安装盘。

安装方法:

开始-控制面板-程序-打开或关闭windows功能-internet信息服务-Web管理工具

如下图所示:

1、打开IIS管理器,如下图所示:

2、新增网站:鼠标右击“网站”这个文件夹>>点击“添加网站”,出现如下弹窗:

网站名称:这个自定义,是为区分不同网站使用。

物理路径:网站代码的位置,html代码等

绑定:分配IP和端口、解析指定的域名,如果要绑定多个域名,可以在后面“编辑”中操作

3、填写无误后,点击确定,“网站”文件夹下就出现新增的网站了,如下图所示:

左侧列表是IIS服务器目前所有的网站列表

中间项目是针对某个网站所提供的服务和设置

右侧列表是这个网站的操作:

浏览:打开网站代码的根目录

编辑权限:设置网站代码对外的权限

绑定:IP及端口、域名绑定的设置,新增的弹窗只能设置一个域名,这里就可以设置多个

基本设置:修改网站名称、代码路径地址

管理网站:对网站服务器的重新启动、启动、停止、删除等操作

浏览网站:这里就可以点击查看网站代码运行的对外实际效果

高级设置:略

限制:宽带等限制

就这么点点点,IIS就能很快很简单地把网站部署好了。若中间遇到了什么不可描述的问题~~就自行google吧。

很多框架或者网站代码,是需要在web服务器上配置路由寻址的。IIS的也不是很麻烦:

1、首先,得自己写好 .htaccess 文件(一般框架都有自带的),例如:

```

```

2、IIS导入规则,双击”URL重写”>>点击“导入规则”>>选择.htaccess文件,确定生成如下图所示:

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会的名称、一种武装直升机等等。

Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。

1.支持最新的HTTP/1.1通信协议

2.拥有简单而强有力的基于文件的配置过程

3.支持通用网关接口

4.支持基于IP和基于域名的虚拟主机

5.支持多种方式的HTTP认证

6.集成Perl处理模块

7.集成代理服务器模块

8.支持实时监视服务器状态和定制服务器日志

9.支持服务器端包含指令(SSI)

10.支持安全Socket层(SSL)

11.提供用户会话过程的跟踪

12.支持FastCGI

13.通过第三方模块可以支持JavaServlets

“我们在使用Apache作为web服务器的过程中,只有对Apache服务器进行适当的优化配置,才能让Apache发挥出更好的性能;再反过来说,如果Apache的配置非常糟糕,Apache可能无法正常为我们服务。因此,针对我们的应用需求对Apache服务器的配置进行一定的优化是必不可少的。” --百度百科

目前apache和nginx好像还没有看到像IIS一样的可视化配置。在windows和linux上,apache和nginx 都是以编辑配置文件的形式来配置。

1、目录结构详解

一般情况下,apache安装好后,其目录结构大致如图(linux也差不多):

conf #主要存放了配置文件httpd.conf

logs #日志文件存放的目录

bin #执行文件存放的目录,比如:(ab 常用压测工具),(apachectl 控制apache启动的,实际调用的httpd),(apxs apache扩展编译的工具),(htpasswd 为网站设置用户名密码),(httpd apache的控制命令程序),(rotatelogs apache的日志轮询工具)等

cgi-bin #CGI处理程序的存放目录

manual #一些帮助及说明文档

modules #apache加载的module文件存放目录(缺省配置)

可能还有这么几个目录:

conf.d #里面存放的是一些额外的参数文档,比如php.conf,可以自定义设置一定配置参数放置到该目录

vhost #虚拟主机配置文件存放的目录,这个也是自定义的—phpstudy则直接把配置放到conf/vhost.conf 这个文件里,效果是一样的。

run #PID文件存放的目录(可以自行更改)

htdocs #apache网站程序文件存放目录(可以自定义)

2、httpd.conf 主配置文件详解

```

```

3、vhosts.conf 虚拟机配置文件详解

先直接上配置:

```

```

VirtualHost: 表示基于名称的虚拟主机 *:80表示监听本机所有IP的80端口上提供HTTP服务,*可以设置为具体IP

DocumentRoot: 网站代码目录

ServerName: 解析的域名地址

< Directory > 配置目录权限

AllowOverride:禁止用户对目录配置文件.htaccess修改,一般为none

DirectoryIndex: 站点目录首页文件多个文件用空格隔开

Order和Allow: IP限制

Options:主要作用是控制特定目录将启用哪些服务器特性,参数有:All、None、FollowSymLinks、Indexes、MultiViews、SymLinksIfOwnerMatch、ExecCGI、Includes、IncludesNOEXEC。参数说明如下图:

Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。

目前apache和nginx好像还没有看到像IIS一样的可视化配置。在windows和linux上,apache和nginx 都是以编辑配置文件的形式来配置。

1、反向代理

正向代理:某些情况下,代理我们用户去访问服务器,需要用户手动的设置代理服务器的ip和端口号。

反向代理:是用来代理服务器的,代理我们要访问的目标服务器。代理服务器接受请求,然后将请求转发给内部网络的服务器(集群化),并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。

2、负载均衡

多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。

3、动静分离

Nginx提供的动静分离是指把动态请求和静态请求分离开,合适的服务器处理相应的请求,使整个服务器系统的性能、效率更高。

1、 目录结构

相对而言,nginx的目录结构比较简单、松散。在

conf:文件夹包含了nginx的所有配置文件,在nginx安装目录下

log: 包含nginx的访问日志和错误日志,可在配置中自定义

html: 网站根目录地址,可在配置中自定义

sbin: nginx命令的目录

proxy_temp,scgi_temp,uwsgi_temp,临时目录

2、nginx.conf 主配置文件详解

```

```

3、vhosts.conf 虚拟机配置文件详解

```

```

热度438

了解更多服务器技术网站:web服务器 IIS、Apache和Ngnix基础欢迎联系奇岸开发客服。

奇岸开发可定制企业官网小程序、小程序商城、餐饮外卖小程序、预约小程序、多门店小程序、分销小程序及个人小程序。

微信二维码

微信长按识别或扫一扫,无需加好友直接咨询,企业网站开发、网站托管维护、企业管理系统开发、微信小程序制作、域名主机、网站备案、网站改版等提供专业技术解答。

精彩推荐

猜你喜欢