如何把一台电脑变成开发服务器
如何把自己电脑设置成服务器
这里我们讲一下怎样把自己的电脑变成一台网站服务器来使用, 把自己的电脑用作网站服务器并不难。
无需别的硬件或软件就能够轻松实现, 只需利用Windows95OSR2中提供的"个人Web服务"(PersonalWebServer)就可以。
如果想功能更加多一些的话, 就需要用 WindowsNTServer40。 您甚至还可以创作自己的HomePage发布信息、进行文件传送或开展网上讨论等等。
总言而之, 过去我们只能在网络上看见的, 现在全部都可以自己来完成。
一、Web服务器功能的设置 安装完Windows95OSR2后, 应该考虑让别人用什么样的方法来访问我们的Web服务器, 如用电话拨号来访问, 就应该安装像Plus之类的电话拨号服务软件。
如果只能提供电话拨号服务, 建议采用后一种方案, 即用 WindowsNTServer40, 因为它能提供256条电话线同时拨号。
当然我们也可以自己先连上一个公共的网络服务器, 让别人从这个服务器访问我们的Web服务器, 但必须要有一个固定的IP地址 , 并在这个服务器的DNS(域名服务器)中注册。
如果只有IP地址, 但没有在DNS中注册, 那么局域网以外的用户就不能访问该个人Web服务器。
不管用什么方式, 我们都要为计算机设置TCP/IP协议和Web个人服务器功能。
这可以在"网上邻居"中设置。
方法非常简单, 只需在"网上邻居"的"属性"中添加TCP/IP协议, 然后在"TCP/IP属性"中的"IP地址"标签中选择"指定IP地址"并输入正确的 IP地址。 在"DNS配置"标签中选择"使DNS无效"。
安装个人Web服务器的方法如下:
(1)在"网上邻居"的"属性"对话框"配置"标签中单击"添加"按钮;
(2)在弹出的"选择网络组件类型"对话框中, 在"厂商"栏中选择"Microsoft", 在"网络服务"栏中选择"PersonalWebServer", 然后单击"确定"按钮。这时Windows95将自动配置系统。 机器启动后, 在Windows95所在驱动器的根目录下面将建立一个名为Webshare的子目录, 其下还有三个子目录:WWWroot、Scripst和FTProot, 分别存放HTML超文本文件、CGI脚本文件和FTP文件传送文件。
安装完成后, 先可以进行一下测试。 启动机器, 在"控制面板"中双击"个人Web服务器"图标, 在"服务"选项栏中分别选择"HTTP"和"FTP"并单击"启动", 这样就开启这两项服务功能。 也可以设成"自动方式", 这样每次开机后, 就自动启动Web服务器功能。 启动Web服务器功能后, 我们可以打开 WWW浏览器(如IE), 在地址栏中键入我们的IP地址, 马上就会出现Web个人服务器中自带的一个主页。
然后可以在一个局域网中(如Intranet 网)进行测试。 方法是在网上的其他计算机中, 用WWW浏览器键入用作个人Web服务器的计算机的注册名, 这时应当出现同样的主页。 如果不能看见, 可以在个人Web服务器上用DOS方式运行一下winipcfg命令, 看一看这台计算机的IP地址是不是正确。
下面介绍怎样在WindowsNTServer40中文版中设置Web服务器功能。
WindowsNTServer40中文版中的Web服务功能通过 IIS20(InternetInformationServer20)来实现。 在安装WindowsNTServer40中文版的过程中 , 系统会提示"是否安装IIS20?", 应回答"安装"。 这样启动WindowsNTServer40中文版后, 就有Web服务器的功能。 和 Windows95中的情况一样, 在WindowsNT中也同样存在用什么样的方法让别人访问Web服务器的问题。
如果是在局域网中, 要安装网卡、设置协议及IP地址等。 如果准备用调制解调器让别人拨号访问, 则要安装调制解调器、电话线路。 还要在"服务项目"中添加"RAS远程服务"功能, 并在这个功能的"属性"中设置协议等等。 如果对这些设置不太清楚的话, 可以参考有关WindowsNT的书籍。
安装完成后, 可以按照前面在Windows95OSR2 中的方法进行一下测试, 看看能不能在另外的计算机中用WWW浏览器看到IIS20提供的一个主页例子。
二、制作自己的主页 要制作主页, 先要安装一些必要的网页制作软件, 笔者使用的是FrontPage97。
先把个人Web服务器中自带的主页修改成自己的主页。
方法是进入这个主页的目录(Windows95在Webshare目录的WWWroot子目录中, WindowsNT在InetPub目录的WWWroot子目录中), 找到defaulthtm文件双击打开后, 选中工作条中的"编辑", 系统会自动调出FrontPage97, 这时就可以发挥自己的才能进行一番设计。
在这个主页中, 我们能够向外发布消息, 让别人下载放在Webshare目录下FTProot子目录中的文件, 但是还不能实现双向交流, 接收访问者的信息。
三、安装CGI系统 要使Web服务器能为别人提供"写"的功能, 必须在服务器上安装CGI(通用网关接口)系统。
通用网关接口是一个信息服务器主机对外信息服务的标准接口(见图2)。
事实上, 任何一种程序语言所设计的应用程序可以在服务器主机上执行, 并利用CGI接口来传送应用服务信息, 皆称之为"CGI程序语言", 而用这种语言编写的CGI程序又被称为"脚本"。
现在常用的有Shell、VB、C/C++、Java、Perl等语言。
以PerlforWin32为例, 您可以从Internet上下载自解压文件pw32i316exe, 然后安装。
我们先来看看怎样在Windows95OSR2版中的"个人Web服务"上安装Perl系统: 启动Windows95后, 用鼠标双击下载下来的pw32i316exe, 自解包就会自动运行解压并进行安装, 整个安装过程可以全部回quot;Y"完成。
完成后一般会在C盘根目录下建立一个名为Perl的目录, 并在其下建立几个子目录, 其中在Bin子目录中有一个名为 perlexe的可执行程序, 这就是Perl系统的主程序。
但是这时的Perl主程序并不能运行按Perl语言方法编写的CGI脚本, 所以还必须修改 Windows95的注册表。
方法是先运行注册表编辑器regedit, 然后依次打开"HKEY_LOCAL_MACHINE \System \Currentcontrlset \Services \W3svc \Parameters \ScriptMap\", 加入"pl'C:\PERL\BIN\perlexe%s%s'"。
退出注册表文件后, 重新启动计算机, 然后进入Perl 目录下的Eg子目录, 从中任选一个扩展名为pl的文件并双击, 这时系统会出现一个列表窗口, 询问使用什么程序来打开这个文件, 这时应该在可选的可执行文件列表中找到"perl"(如果找不到可以在"其他"项中按路径来指定), 并选定"始终使用该软件打开这种类型的文件"项, 单击"确定"即可。
在 WindowsNTServer40中的安装过程与Windows95基本一样, 只是修改注册表时应运行regedit32, 加入的内容为:"pl:REG_SZ:C:\Perl\Bin\perlexe%s%s"。
安装完成Perl系统后, 我们就可以写一个CGI脚本试一试。
下面的例子中, 程序1是用Perl语法规则写成的一个CGI脚本, 这是一个 ASCII文本文件, 可用一般的记事本来编写, 完成后用samplepl文件名存盘。
注意不论是在WindowsNTServer40还是在 Windows95中, 都应把这个文件放在Scripts的子目录中。
程序2是相应的HTML文件, 这个文件应放在WWWroot子目录中。
接下来我们可以运行测试。
打开WWW浏览器, 在地址栏中键入:http://您的Web服务器名/程序2的文件全名, 会出现一个填写界面(见图 3), 当输入数据完成后, 单击"确定"按钮, 马上就会把您填写的这些内容写在屏幕上(见图4)。
当然, 我们也可以从网上的另一台计算机来测试。 这仅仅是一个很简单的例子, 要想得到更好的结果(如问卷调查、网上留言、BBS等), 就要进一步学习一些有关Perl语言的知识。
总而言之, 通过不懈努力, 完全可以使我们的个人Web服务器达到专业水平。如何把自己电脑设置成服务器
假设你正在开发一个电商网站,那么这里会涉及到很多后端的微服务,比如会员、商品、推荐服务等等。
那么这里就会遇到一个问题,APP/Browser怎么去访问这些后端的服务 如果业务比较简单的话,可以给每个业务都分配一个独立的域名(https://serviceapicompanycom),但这种方式会有几个问题:
更好的方式是采用API网关,实现一个API网关接管所有的入口流量,类似Nginx的作用,将所有用户的请求转发给后端的服务器,但网关做的不仅仅只是简单的转发,也会针对流量做一些扩展,比如鉴权、限流、权限、熔断、协议转换、错误码统一、缓存、日志、监控、告警等,这样将通用的逻辑抽出来,由网关统一去做,业务方也能够更专注于业务逻辑,提升迭代的效率。
通过引入API网关,客户端只需要与API网关交互,而不用与各个业务方的接口分别通讯,但多引入一个组件就多引入了一个潜在的故障点,因此要实现一个高性能、稳定的网关,也会涉及到很多点。
API 注册
业务方如何接入网关一般来说有几种方式。
协议转换
内部的API可能是由很多种不同的协议实现的,比如HTTP、Dubbo、GRPC等,但对于用户来说其中很多都不是很友好,或者根本没法对外暴露,比如Dubbo服务,因此需要在网关层做一次协议转换,将用户的HTTP协议请求,在网关层转换成底层对应的协议,比如HTTP -> Dubbo, 但这里需要注意很多问题,比如参数类型,如果类型搞错了,导致转换出问题,而日志又不够详细的话,问题会很难定位。
服务发现
网关作为流量的入口,负责请求的转发,但首先需要知道转发给谁,如何寻址,这里有几种方式:
服务调用
网关由于对接很多种不同的协议,因此可能需要实现很多种调用方式,比如HTTP、Dubbo等,基于性能原因,最好都采用异步的方式,而Http、Dubbo都是支持异步的,比如apache就提供了基于NIO实现的异步HTTP客户端。
因为网关会涉及到很多异步调用,比如拦截器、HTTP客户端、dubbo、redis等,因此需要考虑下异步调用的方式,如果基于回调或者future的话,代码嵌套会很深,可读性很差,可以参考zuul和spring cloud gateway的方案,基于响应式进行改造。
优雅下线
性能
网关作为所有流量的入口,性能是重中之重,早期大部分网关都是基于同步阻塞模型构建的,比如Zuul 1x。但这种同步的模型我们都知道,每个请求/连接都会占用一个线程,而线程在JVM中是一个很重的资源,比如Tomcat默认就是200个线程,如果网关隔离没有做好的话,当发生网络延迟、FullGC、第三方服务慢等情况造成上游服务延迟时,线程池很容易会被打满,造成新的请求被拒绝,但这个时候其实线程都阻塞在IO上,系统的资源被没有得到充分的利用。另外一点,容易受网络、磁盘IO等延迟影响。需要谨慎设置超时时间,如果设置不当,且服务隔离做的不是很完善的话,网关很容易被一个慢接口拖垮。
而异步化的方式则完全不同,通常情况下一个CPU核启动一个线程即可处理所有的请求、响应。一个请求的生命周期不再固定于一个线程,而是会分成不同的阶段交由不同的线程池处理,系统的资源能够得到更充分的利用。而且因为线程不再被某一个连接独占,一个连接所占用的系统资源也会低得多,只是一个文件描述符加上几个监听器等,而在阻塞模型中,每条连接都会独占一个线程,而线程是一个非常重的资源。对于上游服务的延迟情况,也能够得到很大的缓解,因为在阻塞模型中,慢请求会独占一个线程资源,而异步化之后,因为单条连接所占用的资源变的非常低,系统可以同时处理大量的请求。
如果是JVM平台,Zuul 2、Spring Cloud gateway等都是不错的异步网关选型,另外也可以基于Netty、Spring Boot2x的webflux、vertx或者servlet31的异步支持进行自研。
缓存
对于一些幂等的get请求,可以在网关层面根据业务方指定的缓存头做一层缓存,存储到Redis等二级缓存中,这样一些重复的请求,可以在网关层直接处理,而不用打到业务线,降低业务方的压力,另外如果业务方节点挂掉,网关也能够返回自身的缓存。
限流
限流对于每个业务组件来说,可以说都是一个必须的组件,如果限流做不好的话,当请求量突增时,很容易导致业务方的服务挂掉,比如双11、双12等大促时,接口的请求量是平时的数倍,如果没有评估好容量,又没有做限流的话,很容易服务整个不可用,因此需要根据业务方接口的处理能力,做好限流策略,相信大家都见过淘宝、百度抢红包时的降级页面。
因此一定要在接入层做好限流策略,对于非核心接口可以直接将降级掉,保障核心服务的可用性,对于核心接口,需要根据压测时得到的接口容量,制定对应的限流策略。限流又分为几种:
稳定性
稳定性是网关非常重要的一环,监控、告警需要做的很完善才可以,比如接口调用量、响应时间、异常、错误码、成功率等相关的监控告警,还有线程池相关的一些,比如活跃线程数、队列积压等,还有些系统层面的,比如CPU、内存、FullGC这些基本的。
网关是所有服务的入口,对于网关的稳定性的要求相对于其他服务会更高,最好能够一直稳定的运行,尽量少重启,但当新增功能、或者加日志排查问题时,不可避免的需要重新发布,因此可以参考zuul的方式,将所有的核心功能都基于不同的拦截器实现,拦截器的代码采用Groovy编写,存储到数据库中,支持动态加载、编译、运行,这样在出了问题的时候能够第一时间定位并解决,并且如果网关需要开发新功能,只需要增加新的拦截器,并动态添加到网关即可,不需要重新发布。
熔断降级
熔断机制也是非常重要的一项。若某一个服务挂掉、接口响应严重超时等发生,则可能整个网关都被一个接口拖垮,因此需要增加熔断降级,当发生特定异常的时候,对接口降级由网关直接返回,可以基于Hystrix或者Resilience4j实现。
日志
由于所有的请求都是由网关处理的,因此日志也需要相对比较完善,比如接口的耗时、请求方式、请求IP、请求参数、响应参数(注意脱敏)等,另外由于可能涉及到很多微服务,因此需要提供一个统一的traceId方便关联所有的日志,可以将这个traceId置于响应头中,方便排查问题。
隔离
比如线程池、http连接池、redis等应用层面的隔离,另外也可以根据业务场景,将核心业务部署带单独的网关集群,与其他非核心业务隔离开。
网关管控平台
这块也是非常重要的一环,需要考虑好整个流程的用户体验,比如接入到网关的这个流程,能不能尽量简化、智能,比如如果是dubbo接口,我们可以通过到git仓库中获取源码、解析对应的类、方法,从而实现自动填充,尽量帮用户减少操作;另外接口一般是从测试->预发->线上,如果每次都要填写一遍表单会非常麻烦,我们能不能自动把这个事情做掉,另外如果网关部署到了多个可用区、甚至不同的国家,那这个时候,我们还需要接口数据同步功能,不然用户需要到每个后台都操作一遍,非常麻烦。
这块个人的建议是直接参考阿里云、aws等提供的网关服务即可,功能非常全面。
其他
其他还有些需要考虑到的点,比如接口mock,文档生成、sdk代码生成、错误码统一、服务治理相关的等,这里就不累述了。
目前的网关还是中心化的架构,所有的请求都需要走一次网关,因此当大促或者流量突增时,网关可能会成为性能的瓶颈,而且当网关接入的大量接口的时候,做好流量评估也不是一项容易的工作,每次大促前都需要跟业务方一起针对接口做压测,评估出大致的容量,并对网关进行扩容,而且网关是所有流量的入口,所有的请求都是由网关处理,要想准确的评估出容量很复杂。可以参考目前比较流行的ServiceMesh,采用去中心化的方案,将网关的逻辑下沉到sidecar中,
sidecar和应用部署到同一个节点,并接管应用流入、流出的流量,这样大促时,只需要对相关的业务压测,并针对性扩容即可,另外升级也会更平滑,中心化的网关,即使灰度发布,但是理论上所有业务方的流量都会流入到新版本的网关,如果出了问题,会影响到所有的业务,但这种去中心化的方式,可以先针对非核心业务升级,观察一段时间没问题后,再全量推上线。另外ServiceMesh的方案,对于多语言支持也更友好。
国内外很多厂家已经发布了成熟的产品,网关的功能,稳定性都满足了一些客户的需求。但是随着VOIP 普及,IMS,UC, 三网融合等等逐步推进,相当多的集成商已经进入了这个领域,希望在VOIP 的市场上占有一席之地,同时经济危机的影响,大部分集成商对语音接入设备的投入成本显得非常谨慎,因此浪费了市场的机会。为了使得集成商能够实现最佳性价比的硬件产品解决方案,我们今天讨论如何使用Sangoma语音板卡开发成熟的高性价比的落地网关,呼叫中心网关解决方案。以下是几个解决方案的实现方法: 利用Sangoma 中继语音板卡/Asterisk/ 开源PRI,SS7,R2 协议栈Sangoma_网关开发平台_1 以上解决方案的实现方式:客户购买市场上主流的服务器,下载linux 发行版本,然后下载开源的asterisk 软交换和开源SS7的协议栈。通过一系列的配置,网关功能就可以完全实现。Asterisk 本身具有丰富的IPPBX 功能和呼叫中心的队列支持,支持了丰富的语音编码,和SIP客户端。信令接入支持了中国1号,7号,PRI。 利用Sangoma中继语音板卡/Freeswitch/开源PRI,SS7,R2协议栈Sangoma_网关开发平台_2 以上实现方式和开发平台_1的架构基本相同,区别在于软交换平台不同,SS7的实现依赖于Freeswitch的语音接口模块freetdm,此模块是sangoma 负责维护,完全支持免费的Q921,Q931。Freeswitch 软交换平台具备强大的路由功能,SIP 协议栈采用了具有较高声望的Sofia开源协议栈,保证了SIP协议的稳定性,和高并发处理。笔者认为,Sofia-sip协议栈完全可以作为网关开发的工具。 Sangoma中继语音板卡/Sangoma 自有协议栈TDM-SIP硬件解决方案 以上图例介绍了sangoma PRI的解决方案,和基于开源的解决方案相比,产品更加稳定,同时系统软件(免费支持12个端口)可以灵活配置,支持灵活的OEM定制,最大可支持32E1,对接支持Lync,Genesys SIP Server 等主流软交换平台,图形化界面支持。 Sangoma中继语音板卡基于Yate开源语音平台的网关Sangoma/yate网关解决方案 Yate是目前比较流行的开源语音软交换平台,号称下一代电话引擎,实现了SIP,H323,PSTN, Google Voice 接口的集成(据说GoogleVoice 使用的就是Yate)。用户可以利用Yate/Sangoma语音板卡开发Google voice PSTN 网关,同时Yate 支持了SS7的移动运营商模块:SCCP,TCAP,MAP和CAMEL。 总之,通过以上网关解决方案的介绍,使得用户更加明确了每个解决方案的特点,通过简单的开发,就可以基本实现中继网关的所有功能。和传统的中继网关相比,以上网关方案具有以下特点:具有竞争力的产品价格,比市场上的相同端口网关成本至少低20-30%, 极大降低了软件,协议栈开发成本。高密度,最大支持到32E1,同时可以支持分布式的运营商级的编码转换。X86 平台,系统资源丰富,灵活的二次开发环境。通过扩展语音编码转换卡,支持运营商级的编码转换和强大的落地服务。实现了丰富的语音路由,失效转移,录音功能。Sangoma自有底层驱动工具,轻松排查运营商/远端告警,芯片级错误,物理接口报错。 以上开源的协议栈,软交换平台集成了目前市场上最流行的中继网关网关功能,同时赢得了全方位的测试,保证了系统的稳定性。在此基础上,结合Sangoma丰富的语音板卡网关设计经验,最佳性价比的开源中继数字网关是完全可以实现的,我们相信Sangoma开源中继语音网关具有非常强的市场竞争力。
简单的说网关是用来连接不同网络(提供网络接口的服务器或其他硬件的IP),服务提供地址,就你我们公司几台电脑通过路由器上网一样,那这个路由器就是网关,我们在设置电脑上网时所填写的网关就是路由器的IP地址,倒如19216811(默认),你也可以自己设置路由器的IP,如果我的电脑是一台服务器,那么别人要访问我的服务器,同样也要通过这台路由器即网关来访问
网关(Gateway)又叫协议转换器,是一种复杂的网络连接设备,可以支持不同协议之间的转换,实现不同协议网络之间的互连。网关具有对不兼容的高层协议进行转换的能力,为了实现异构设备之间的通信,网关需要对不同的链路层、专用会话层、表示层和应用层协议进行翻译和转换。
所以说,网关是一个智能超群的路由器,一个智能超群的网桥,一个智能超群的中继器。
若要使两个完全不同的网络(异构网)连接在一起,一般使用网关,在Internet中两个网络也要通过一台称为网关的计算机实现互联。这台计算机能根据用户通信目标计算机的IP地址,决定是否将用户发出的信息送出本地网络,同时,它还将外界发送给属于本地网络计算机的信息接收过来,它是一个网络与另一个网络相联的通道。为了使TCP/IP协议能够寻址,该通道被赋予一个IP地址,这个IP地址称为网关地址。
网关主要用于不同体系结构的网络或者局域网与主机系统的连接。在互连设备中,它最为复杂,一般只能进行一对一的转换,或是少数几种特定应用协议的转换。网关一般是一种软件产品。目前,网关已成为网络上每个用户都能访问大型主机的通用工具。
打个比方说,一个局域网比作一个房间,一个房间里有若干电脑,当屋内的电脑进行通讯的时候当然没有阻碍,因为他们都是在一起的。但当这个房间内的任何一台电脑要与外界相连,就要通过网关了。这个网关可以比作房间大门的门牌,而网关服务器就是一种对外的识别系统,使不同网络之间可以自由通讯的系统。
应用层网关(也叫应用层防火墙或应用层代理防火墙)通常被描述为第三代防火墙。当受信任网络上的用户打算连接到不受信任网络(如Internet)上的服务时,该应用被引导至防火墙中的代理服务器。代理服务器可以毫无破绽地伪装成Internet上的真实服务器。它可以对请求进行评估,并根据一套单个网络服务的规则决定允许或拒绝该请求
0条评论