使用VPS搭建Dota2自定义游戏存储服务器

经过一番对比和这一段时间的试用,一番比较下来,发现了一个比较好的VPS服务供应商。
首先是用过一段时间国内的阿里云服务器,但是最主要的问题是:国内的服务器需要备案,如果是个人自定义游戏开发者,那个复杂的备案流程足以让人放弃这个过程了。而且如果不是学生的话,性价比偏低,在有学生优惠的情况下可以考虑,否则不推荐。
Conoha的几个优点:

  1. 有足够的带宽且不限流量:Conoha提供无限量的流量和上下100Mbps的带宽。
  2. 价格便宜而且是按小时计费,对于DOTA2自定义游戏来说,Conoha最低的配置(2核1GB内存)已经足够应付绝大多数自定义游戏的储存需求了,对应的费用是一个月900日元(50多块一个月),一小时1.3日元,而且充值之后,只要删除了所有的服务器,就可以暂时停止服务并停止扣费。
  3. 速度非常OK,目前已经使用过的服务器中,除了国内的阿里云之外,Conoha比绝大多数的供应商速度都要快,ssh连接非常流畅。甚至比起一些国内的VPS还要快,东京服务器国内访问大多数在100ms之内。

第一部分:购买

欢迎大家使用我的推荐链接
点击这里进入Conoha网站
来注册Conoha,这样我也可以获得一些(虽然现在已经暂停了,不过说不定以后哪天人家就会补给我的)优惠券,可以在续费的时候使用。
Conoha官方提供中文的界面,点击右上角的注册并完成登录。
注册登录过程不表。
之后可以选择预充值或者使用信用卡的方式来付款。(信用卡可以先使用后扣款)

创建云服务器并登录

1. 创建云服务器

登录了Conoha的控制面板之后,点击左侧的追加服务器来创建一个新的云服务器。

Paste_Image.png

套餐内容可以全部默认,当然,你也可以选择更高的配置,不过我觉得就最低配置就足以跑一个不错的自定义游戏服务器还可以额外做一些诸如科学上网,建一个Wordpress博客之类的小事了。
注意点有两个:

  1. 如果你的游戏的玩家群体主要是国内(美国、欧洲)的玩家,区域推荐选择美国(美国需要一些额外的费用),当然,如果大多数都是国内的玩家,推荐选择东京。
  2. 操作系统就服务器的需求的话,其实是选择CentOS要更好,不过因为我个人已经非常习惯使用Ubuntu的apt-get之类的了,所以我会选择Ubuntu,同时,由于最新的16.04系统会有一些兼容性问题,这里推荐选择安装Ubuntu14.04(64bit)。
  3. root密码最好在其他地方确认输入正确时候再粘贴到格子里面(因为这个密码非常重要而且他没有输入两次的设定)。
  4. 推荐生成一个ssh key来供登录使用,当然,如果你对于ssh key的操作不熟悉,还是只创建一个密码用来登录就足够了。
    点击追加来完成服务器的创建,之后会显示建筑状态(Building还是Constructing?),等待一会只要几秒钟,服务器就会创建成功并允许登录了。等待状态变成启动状态之后,点击名称标签进入服务器。
Paste_Image.png

进去之后展开网络信息,复制IP地址,之后就可以使用这个IP登录云服务器了。

2. 登录云服务器

登录云服务器,分平台的不同

OSX及Linux

使用自带的终端连接云服务器就足够了。

Windows

在windows下,可以下载一个 Putty 或者 MobaXTerm 来登录云服务器,这里推荐使用 MobaXTerm 来登录,会比较容易。而且功能整合得比较多。

在终端或者MobaXTerm的终端输入

ssh root@你的云服务器IP地址

来登录云服务器,之后会要求你输入密码,完成密码的输入之后就会显示

root@xxx-xxx-xx-xxx:~#

这样你就完成了登录你的云服务器的工作了。

第二部分:环境搭建与Hello World

1.确认python的安装及python版本

在登录云服务器之后,输入python,将会进入python交互界面,如果不出意外,将会出现的是python2.7.6的版本。

Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

确认python的安装之后,按Ctrl+D退出python交互模式。

2.安装PIP并安装python扩展

安装PIP

apt-get install python-pip python-dev build-essential 
pip install --upgrade pip
pip install --upgrade virtualenv 

在终端尝试输入 pip并回车,如果出现了pip的帮助提示,则说明已经装好了pip,如果没有出现,还要麻烦百度一下你所选择的操作系统的pip安装方式,一般都会很简单。

之后在终端输入

pip install flask
pip install trueskill
pip install pymongo

(可以一次性复制上面的所有代码并粘贴到你的终端中,将会自动完成所有的安装工作)。
这里我们安装了几个东西:

  • Flask——一个python web框架来作为服务器端脚本
  • TrueSkill——一个来自于微软的积分算法用来给我们的玩家们计算积分
  • PyMongo——一个python用来操作MongoDB服务器的库

如果安装正确的话,在每个安装完成之后应当显示:

Successfully installed pymongo
Cleaning up...

这样的内容。

3. 安装MongoDB

你当然可以使用apt-get安装mongodb

apt-get install mongodb

不过问题就是,apt-get源里面的mongodb版本会比较低,推荐还是使用官方提供的下载地址下载tar ball之后编译安装,具体安装过程还请自行百度(如果你认为太复杂的话,那就使用apt-get的源安装就够了)

代码编写

新建一个python代码文件夹并打开

mkdir ~/python
 cd ~/python

(如果你使用的是windows的MobaXTerm,可以在左边的browser勾选follow terminal,这样就会自动定位到当前的文件夹位置)

vi server.py

进入代码编辑。
按I之后进入代码编辑模式,键入如下内容

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'hello world'

if __name__ == '__main__':
    app.run()

输入完成之后,按ESC,之后输入:wq(依次按shift+;,w,q,回车)保存并退出编辑器。
之后在终端输入

python server.py

如果没有报错的话,应该显示这样的内容

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

要注意的是,因为云服务器安全设定的关系,你是无法其他电脑上连接到这个5000端口的,这个时候为了测试,你可以再在MobaXTerm(windows)或者Terminal里面打开一个新的session,用ssh登录服务器,并输入

curl http://localhost:5000

如果返回

curl http://localhost:5000
hello world

的话,就说明你的代码木有写错 xD

当然,这个时候你的服务器一点用都没有,一个无法访问的服务器有什么用呢?
这里我们再输入 vi server.py
将最后一行的

    app.run()

改成

    app.run(host='0.0.0.0', port=9001, debug=True)

之后再次esc+:wq保存退出,再输入

python server.py

这个时候你再在自己的电脑上打开一个浏览器,输入 你的服务器IP地址:9001的话,就应该可以在显示器中看到hello world了。
这个部分到此结束。
顺道说一句,为了以后开发的方便,我们总不能一直在终端使用vim写代码,大家可以用MobaXTerm非常方便的文件浏览器,打开服务器的文件,修改之后保存即可,也可以使用FileZilla 之类的软件来完成文件的上传下载。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,451评论 25 707
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,440评论 6 428
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 都说当妈怀胎十月不容易,生出来的娃一定要孝顺。在我家的画风却是这样的 “老公你管不管,别人老公殴打你老婆啦” “管...
    脾气的奶娘阅读 395评论 0 1
  • Linux文件属性 使用ls -al后,查看目录文件: 上述各列的意义如下: 1:权限2:连接3:所有者4:用户组...
    zshanjun阅读 291评论 0 0