如何把一台电脑变成开发服务器
如何把自己电脑设置成服务器
这里我们讲一下怎样把自己的电脑变成一台网站服务器来使用, 把自己的电脑用作网站服务器并不难。
无需别的硬件或软件就能够轻松实现, 只需利用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服务器达到专业水平。如何把自己电脑设置成服务器
转载表面上看,是一套基于B/S方式实现的分布式管理系统,但其实背后的架构是基于C/S完成的。你以为他是一只鞋吗?其实他是一个吹风机。作为界面化的系统,浏览器框架是不可或缺的,但更加重要的东西在Socket上面。
一、需要解决中央控制端到各节点服务器之间的通信。
这个其实牵扯到一个通信协议的问题,各语言都有自己的socket,thread的库,直接调用即可。但是这个通信协议就需要自己来完成了。既不能太简单,太简单了,明码传输,如果别人获知了这个接口,就很容易执行一些令人讨厌的操作。也不能太复杂,太复杂了等于是给自己找麻烦,所以简单的数据包编解码的工作或者用token验证的方式是需要的。通信协议起码要两种,一种是传输命令执行的协议,一种是传输文件的协议。
二、跨语言的socket通信
为什么要跨语言,主控端和代理端通信,用什么语言开发其实无所谓。但是为了给自己省事,尽可能使用服务器上已经有了的默认语言,Ambari前期采用phppuppet的方式管理集群,这不是不可以,puppet自己解决了socket通信协议和文件传输的问题,可你需要为了puppet在每台服务器上都安装ruby。我是个有点服务器和代码洁癖的人。光是为了一个puppet就装个ruby,我觉得心里特对不起服务器的资源。所以我自己写了一个python的代理端。python是不管哪个linux系统在安装的时候就都会有了。然后主控端的通信,可以用python实现,也可以用php实现,但是考虑到对于更多的使用者来说,改php可能要比改tornado简单许多,所以就没用python开发。hadoop分支版本众多,发布出去,用户要自己修改成安装适合自己的hadoop发行版,就势必要改源码,会php的明显比会python的多。php里面的model封装了所有的操作,而python只是个操作代理人的角色而已。
所以也延伸出一个问题,什么语言用来做这种分布式管理系统的代理端比较合适,我自己觉得,也就是python比较合适了,操作系统自带,原生的package功能基本够用。用java和php也可以写agent,但是你势必在各节点预先就铺设好jre或者php运行环境。这就跟为什么用python和java写mapred的人最多是一样的。没人拦着你用nodejs写mapred,也可以写,就是你得在每个节点都装v8的解释引擎,不嫌麻烦完全可以这样干。原理参看map/rece论文,不解释。perl也是操作系统原生带的,但是perl的可维护性太差了,还是算了吧。
所以这就牵扯到一个跨语言的socket问题,理论上来说,这不存在什么问题。但这是理论上的,实际开发过程中确实存在问题,比如socket长连接,通信数据包在底层的封装方式不同。我没有使用xml-rpc的原因之一就是我听说php的xmlrpc跟其他语言的xmlrpc有不同的地方,需要修改才能用,我就没有用这种办法。最早是自己定义的操作协议,这时就遇到了这些问题,所以后来直接采用了thrift方式。就基本不存在跨语言的socket通信问题了。
三、代理端执行结果的获取
无论命令还是文件是否在代理端执行成功,都需要获取到执行结果返回给中央端。所以这里也涉及一个读取节点上的stdout和stderr的问题。这个总体来说不是很难,都有现成的包。当然这个时候你需要的是阻塞执行,而不能搞异步回调。
还有个问题是,我要尽可能使用python默认就带的包,而尽量不让服务器去访问internet下载第三方的包。
还有代理端最重要的一点,就是python的版本兼容性。centos5用python24,centos6用python26,ubuntu基本默认都是27。所以一定要最大限度的保证语言的跨版本兼容性,要是每个操作系统和每一个版本我都写一个代理,我一个人就累死了。
四、浏览器端的model,view,controller
这里面你要封装好所有的通信协议,以及需要在节点上面执行的脚本。发送文件的操作和数据库操作也要在model里面完成。
如果对tcl/tk很熟,也可以写基于操作系统界面方式的管理,不用浏览器就是了。
view对我来说是最痛苦的事,都是现学的jQuery怎么用,前端的工作太可怕了。关于这方面,没有太多可描述的,html和js带给我的只有痛苦的回忆,万恶的undefined。
五、跨操作系统的安装文件封装。
要适应不同的操作系统也是个很麻烦的事情,需要用agent提前获知操作系统的发行分支,版本号。然后去找到对应的安装文件去执行。你不能保证一个分布式系统的集群中所有的节点都可以访问internet,更多的情况是这些节点都存在在一个安全的内网中。只有个别几个节点是可以访问外网的。所以,我势必要把所有的安装文件以及他们的依赖尽可能集中起来。我不确定安装操作系统的lzo,yum或者apt-get会去下什么鬼东西,甚至无论是yum还是apt-get,里面都没有hadoop-lzo的库文件。所以,最好的办法是自己编译打包rpm和deb包。直接安装就好了,别去找repo下载什么。
这就是第五步工作,把需要的依赖的东西自己编译打包成rpm和deb。
deb包很好解决,但是rpm就没那么好办了,需要学习rpm的编译文件如何编写,这块是挺麻烦的,但是这玩意用好了还是挺不错的。现在我自制的安装包里面就已经包含了自己编译的lzo和snappy两种压缩库,以及hadoop-gpl-packaging的rpm和deb。下一个发布的easyhadoop将直接支持centos5,6,suse,以及ubuntu/debian的系统上安装hadoop。已经自带了lzo和snappy以及lzop和snzip。
六、把这些所有东西,整合到一个系统里面。
关联这些所有事情间的联系,整合到一个浏览器界面里面去。写一个分布式的管理脚本不难,写一个界面也不难,但是也许是我的水平不行,这两件事结合起来让他们协同工作还是有点难度的。对我来说,写界面的工作可能更难一点。
Cloudera可能是十来个人在写Manager的东西,ambari也是放到github和apachesvn上面,apache基金会的各种committer在写。easyhadoop没他们功能那么强大,一年来只有我一个人设计架构,功能,各种语言的编码,测试,发布。Fortheloveofgod,WhathaveIdone(英文部分请站在山顶仰天长啸)T_T。从前台到后台,到hadoop和生态系统以及他们的依赖软件的单独patch、编译打包。(系统yum或者apt-get的包不如自己打的好使。)
从时间上来看,全球第一款开源的hadoop部署管理系统应该还是属于ambari,2011年8月开始写的,2012年9月底进入apache的incubator。我是大概2012年8月开始写的easyhadoop,全球第一没赶上,估计国内第一个开源的hadoop管理系统还是可以排上的。
作为一名科技行业的从业者,我来回答一下这个问题。
首先,对于个人创业者来说,要想自己搭建一个商用的云计算平台,难度还是非常大的,随着当前云计算平台的逐渐成熟,个人创业者搭建云计算平台的成功几率还是比较小的。
云计算平台的搭建不仅需要较强的技术研发能力,通常还需要非常强大的行业资源整合能力,所以往往只有规模非常大的科技企业才有能力搭建自己的云计算平台,即使做某个细分领域的云平台服务,往往也需要较强的资源整合能力。所以,从这个角度来看,个人创业者要想自己搭建云计算平台,往往需要走很长一段路,而且成功的几率也非常小。
对于个人创业者来说,基于云计算平台来进行行业领域的创业是比较现实的选择,在当前云计算正在向PaaS和SaaS发展的大背景下,个人创业者基于云计算平台进行创业也会有更多的机会,而且也会有一个更为顺利的发展过程。
在当前产业互联网发展的大背景下,基于云计算平台的创业可以重点考虑以下几个方式:
第一:基于PaaS做行业领域的定制化应用。目前有大量的中小科技企业通过PaaS来为行业企业提供定制化开发服务,这个过程涉及到大量的行业知识,所以一定要对特定行业领域有较为全面的认知。
第二:开发基于SaaS交付方式的移动应用。目前基于SaaS交付的移动应用正在成为一个新的创业热点,而且未来SaaS的发展前景非常广阔,对于大量的中小企业来说,采用SaaS服务是比较现实的选择。
第三:提供基于云计算的资源链接服务。基于云计算平台来完成各种资源链接服务也是比较不错的选择,对于手里握有大量资源的个人创业者来说,基于云计算来构建一个自己的应用也会带来较大的价值增量。
0条评论