首页 热点资讯 义务教育 高等教育 出国留学 考研考公

WEB服务器怎么做?

发布网友 发布时间:2022-04-23 08:41

我来回答

3个回答

热心网友 时间:2022-04-18 22:11

创建一个 WEB 服务器
NetBox 的一大功能就是内置支持了 HttpServer 和 asp。下面就按步骤建立一个以服务方式运行的 WEB 服务器。

第一步:创建 WEB 服务器
由于 NetBox 提供了 HttpServer 对象,所以建立一个新的 HttpServer 并且启动、停止、退出,自然便是由 HttpServer 对象来实现,main.box 的代码也就比较简单了:

Set Console = Shell.Console
Set httpd = CreateObject("NetBox.HttpServer")

If httpd.Create("", 80) = 0 Then
httpd.Start

Console.ReadLine

httpd.Stop
httpd.Close
End If

Set httpd = Nothing
在上面的代码中,先创建一个新的 HttpServer,然后在所有的本机地址的 80 端口创建一个服务器,如果创建成功,则启动服务器,等待用户在控制台上输入回车后停止并关闭服务器。

运行这个程序,如果当前系统中未安装其他 Web 服务器,则此程序会显示控制台并等待回车,否则将直接退出。呵,我们的第一个程序都是很拙劣的。没有关系,我们一步一步来。

如果成功运行了程序,便可以用浏览器访问了,由于服务器装在本机,所以打开浏览器,在地址栏输入“http://localhost/”,哈,结果出来了,不过很不好看:

418 Host Not Found
不管想访问什么,都只会是这个结果。这样的结果显然不能满足要求,所以我们需要改进我们的 Web 服务器。

第二步:添加虚拟主机
前面我们建立的服务器之所以总是返回禁止访问,原因是没有为服务器建立主机信息。所以我们修改代码,使用 AddHost 方法增加主机信息的部分:

Set Console = Shell.Console
Set httpd = CreateObject("NetBox.HttpServer")

If httpd.Create("", 80) = 0 Then
httpd.AddHost "", "\wwwroot"
httpd.Start

Console.ReadLine

httpd.Stop
httpd.Close
End If

Set httpd = Nothing
在 NetBox 执行目录建立一个子目录 wwwroot,然后复制一些网页进去。我们再来看看效果如何。执行程序并再次访问“http://localhost/”,结果居然还是“403 Forbidden”。再访问 wwwroot 目录中已有的文件,哈哈,出现正确内容了。所以,实际上主机已经建立出来,但是未给主机提供缺省文件名。

第三步:添加缺省文件
为了让主机知道当用户访问目录时向用户返回的文件,需要使用 AddDefault 方法为主机添加缺省文件名,修改代码如下:

Set Console = Shell.Console
Set httpd = CreateObject("NetBox.HttpServer")

If httpd.Create("", 80) = 0 Then
Set host = httpd.AddHost("", "\wwwroot")

host.AddDefault "default.htm"

httpd.Start

Console.ReadLine

httpd.Stop
httpd.Close
End If

Set httpd = Nothing
我们再访问“http://localhost/”的时候,会发现不再显示禁止访问,而是开始出现了缺省页面的内容。如果给定的缺省文件不存在,则返回“404 File Not Found”。

第四步:支持服务器脚本
上面的步骤建立出来的 Web 服务器,是一个纯静态文件的服务器,是无法执行服务器脚本程序的,为了让我们的 Web 服务器能够理解服务器端脚本程序,需要修改 EnableScript 属性,同时为了让服务器能够使用脚本程序做为缺省文件,还需要再添加一个缺省文件,下面是新修改的代码:

Set Console = Shell.Console
Set httpd = CreateObject("NetBox.HttpServer")

If httpd.Create("", 80) = 0 Then
Set host = httpd.AddHost("", "\wwwroot")

host.EnableScript = true
host.AddDefault "default.asp"
host.AddDefault "default.htm"

httpd.Start

Console.ReadLine

httpd.Stop
httpd.Close
End If

Set httpd = Nothing
接下来,我们就可以在 wwwroot 目录里建立我们的 asp 脚本程序了,建立 test.asp:

<%Response.Write "Hello"%>
NetBox 也支持服务器 box 程序,在 wwwroot 目录中建立 test.box:

Response.Write "Hello"
第五步:以服务方式运行
到目前为止,已经有一个相对完整的 Web 服务器程序了,下面我们需要将这个服务器改写为系统服务程序,可以将其安装成为一个系统服务,更加便于运行维护。改写成为服务程序需要使用 Service 对象。

下面便是一个完整的 Web 服务程序的代码,关于 Service 对象的更多信息请参阅手册相关内容。

Dim httpd

Shell.Service.RunService "NBWeb", "NetBox Web Server", "NetBox Http Server Sample"

---- Service Event ---

Sub OnServiceStart()
Set httpd = CreateObject("NetBox.HttpServer")

If httpd.Create("", 80) = 0 Then
Set host = httpd.AddHost("", "\wwwroot")

host.EnableScript = true
host.AddDefault "default.asp"
host.AddDefault "default.htm"

httpd.Start
else
Shell.Quit 0
end if
End Sub

Sub OnServiceStop()
httpd.Close
End Sub

Sub OnServicePause()
httpd.Stop
End Sub

Sub OnServiceResume()
httpd.Start
End Sub
总结
实现一个完整的 Web 服务程序,需要 HttpServer,HttpServerHost,Service 三个对象的支持,HttpServer 负责建立服务器并控*务器的运行状态,HttpServerHost 负责建立主机信息, Service 则负责完成与服务程序相关的操作。

热心网友 时间:2022-04-18 23:29

PHP+MYSQL平台可以安装 Vertrigo
ASP平台可以安装IIS

热心网友 时间:2022-04-19 01:04

你可以去空间服务商那里租,也可以自己买!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com