游戏制作服务端知识收集

如何让多个程序搭建在一个服务器上

2016-09-14  本文已影响2668人  小宇大神

1.搭建一个适合于架构师使用的开发与实现环境Linux

  1. 众所周知,当项目越来越大的时候,项目的设计也会越来越复杂,一个线上运营的商业项目往往会涉及到多种编程语言与技术的使用,比如php+nodejs,ruby+nodejs,java、python等。如果你觉得为这些不同种类的技术搭建环境就已经够头痛了,那么我想告诉你,还有更复杂的问题还在后头,不同语言环境也是在不断发展之中的,php从4.9到5.2再到7.0中间有着巨大的变化,代码存在着大量的不兼容。
  2. java 1.x到java 6、7 再到java8不止是语法上的变化,甚至连程序设计的思想与原则都发生了改变。类似的例子还有python和ruby,这两个语言在linux运维中使用非常广泛,很多自动化运维脚本都是用python2.x与ruby1.x编写的,然而现在社区中活跃的新版本确是python3.x和ruby2.x。大家不要觉得这些个语言与你们无关,很有可能你们在linux中使用的某些工具就是用老版本的python和ruby编写的。
  3. 这么多的问题,是不是已经让大家头大了呢?在大规模商业项目中,解决环境、版本等问题其实有很成熟的解决方案。
    现在的很多云计算厂商,利用虚拟化技术、容器技术,采用服务化方式进行开发,比如现在流行的docker+微服务架构就是其中的佼佼者,关于更多容器技术与云计算的话题,我会在以后的活动中为大家分享。要完成这种规模的商业项目架构设计,架构师常需要进行程序测试与验证设计,可要在笔记本上完成这样的部署,无论是利用虚拟化技术(虚拟机)还是容器技术,都显得太重了,架构师需要的应该是一个全能的开发、部署与运维环境,环境需要与产品环境高度一致,而且还应该轻便,节省性能,方便管理。

那我们今天就来看一看,这样的环境是如何搭建起来的

  1. 我们如何让一台服务器同时支持多种不同的web服务器,比如如何同时让我们的这台测试机上面能跑起php,nodejs,ruby on rails,如果有必要的话再加一个tomcat来跑jsp也是可以的。
  2. 通常情况下,如果在一台机器中启动多个http服务,我们必须给这些web服务分配不同的端口,否则就会端口冲突。然而标准的网页服务走的是80端口,在浏览器中输入一个网址,不指定端口号,这个请求就会发送到80端口。这样说来,如果同时在多个端口开启web服务基本不需要做太多额外的事情,只要去各个服务器软件中修改配置文件,把端口号调整为其它大于一千的端口且不重复,这样web服务就能跑起来了。
  3. 接着我们需要解决一个棘手的问题,通常我们设计的restfulAPi接口以及默认的用户访问,都是直接把http请求发送至80端口的,80端口只有一个,自然是只能有一个程序去监听这个端口,不过这个解决起来也很简单。之所以说这个最简单,是因为很多http服务器程序都支持http代理功能。我们在这里即将介绍的是利用nginx反向代理实现多个web服务共享80端口。
上一篇 下一篇

猜你喜欢

热点阅读