当前位置首页 > Linux知识

使用AmazonWebServices(AWS)云,基于linux搭建SmartFoxServe

阅读次数:302 次  来源:admin  发布时间:

一程序猿买菜,抬头看天与卖菜大哥讨价还价,大哥不解问:“哥们,看天干嘛?”程序猿答:“云计算。”

新项目试水Amazon Web Services,由使用新浪SAE云的简陋到阿里云的不稳定,不安全,尝试换到技术优势明显,业内成熟的亚马逊云服务。

1.不必多说了,首先你懂的,先注册一个账号。

2.我们要用的的是AWS的EC2服务,EC2相当于主机托管,在亚马逊云上创建一个属于你的一个服务器。

进入EC2控制台页面。在创建之前最好先选择EC2服务器所在的区域(Oregon),如果你的服务器面对的是国内或亚洲用户,最好选择Asia Pacific (Tokyo)或者Asia Pacific (Singapore),所有结点的速度我没有实际测试过,只是按常理就近选择。

3.创建一个实例,Launch Instance,根据你的需要选择服务器系统,SmartFoxServer是基于JVM的,Linux完全木问题。反正都是命令行,我选择了Amazon Linux AMI 64bit ,看介绍它比较成熟,而且考虑到自家的云应该对自家的系统适配比较强-.-,服务器配置可根据你的需要和预算选择,作为B2C网商TOP1亚马逊会给你列出详细价格。根据向导提示创建服务器,amazon云EC2创建的引导做得相当赞,所以不需多解释。

随着引导来到创建Key Pair的页面,这里非常重要,Key Pair是你的服务器安全凭证,根据它远程登陆你服务器。它只能在这个时候创建,并且下载得到,最好不要把它弄丢!把它搞回来将会非常麻烦(也有办法搞回来,但何苦弄丢呢)。

根据引导自定义键入一个KEY名,然后点击Create&Download,下载保存好你的KEY。

接下来是配置EC2的防火墙,这一步我建议可以直接跳过,先让它所有端口保持安全状态,以后需要开放端口再到EC2控制台中进行设置。

各种Continue后,服务器就建立成功了,在创建过程中应该仔细看amazon的引导选项,你的服务器在使用起来才能更得心应手。

稍等一会就能在EC2 Consle里看到你的服务器,等到status check 状态为pass后服务器就创建成功了。

3.通过SSH连接Linux服务器,部署SmartFoxServer

创建好的服务器可以通过在控制台页面中右键点击服务器->Connect,在Connect from your browser using the Java SSH Client (Java Required)选项卡中选择你刚创建并且下载好的本地key pair的路径,Launch SSH Client,亚马逊云会在浏览器启动基于JAVA的SSH客户端远程连接你的服务器。

我选择的是第三方的SSH工具来远程登录服务器。下载一个Putty,安装完成后,打卡Putty根目录,打开puttygen.exe进行一下Key的转换。在puttygen中,File->LoadPrivateKey然后选择你先前从亚马逊创建并下载到的KEY PAIR,注意选择过滤文件类型为ALL Files!

导入过后提示Success,File->Save Private Key 把转换后的Key储存下来。

现在我们需要申请一个公网IP分配给服务器,在EC2 Consle页面中,找到NETWORK & SECURITY选项卡,->Elastic IP申请一个公网IP,然后绑定到服务器上,右键申请得到的IP,->Associate选择你的服务器实例进行绑定。

现在服务器拥有了公网IP,我们可以通过PUTTY进行远程登录了,打开PUTTY,Session选单中HOST NAME输入刚才绑上服务器的IP地址,端口默认为22。

到Connection->SSH->Auth选单中,private key file选择刚才转换后的key文件。

最后在Session选单中把这个Session存下来以备下次能快速打开。

点击OPEN,我们就开始通过SSH远程登录服务器了。

在接下来出现的对话框中点YES,login As :ec2-user

远程登录aws的Linux服务器成功了。

接下来我们部署SmartFoxServer。

首先下载SmartFoxServer2x,使用wget命令下载官网最新版:

(可以到SmartFoxServer官网找到linux版本最新版本下载链接,右键复制下载链接,到putty窗口中点击右键就能粘贴过去了,非常方便--putty中左键选中即是复制,右键即是粘贴)

cd ~
wget http://www.smartfoxserver.com/downloads/sfs2x/SFS2X_unix_2_0_1_64.tar.gz 

解压tar.gz包

tar xzvf SFS2X_unix_2_0_1_64.tar.gz 

解压完毕后

cd SmartFoxServer2X/SFS2X

./sfs2x-service start

这样我们就算启动SmartFoxServer2x服务了,查看sfs2x-service 的运行状态可以通过:

./sfs2x-service status

停止SmartFoxServer:

./sfs2x-service stop

查看详细信息方式启动SmartFoxServer可以运行启动脚本:

./sfs2x.sh

启动SmartFoxServer后查看系统端口状态,确定系统已经对smartfox开放端口:

netstat -anp | grep java

tcp 0 0 ::ffff:127.0.0.1:9933 :::* LISTEN 25110/java

tcp 0 0 :::8080 :::* LISTEN 25110/java

udp 0 0 ::ffff:127.0.0.1:9933 :::* 25110/java

unix 2 [ ] STREAM CONNECTED 46331 25110/java

看到以上信息说明linux系统端口已成功开放了,但是amazon web service的安全机制很完善,我们必须还要到EC2 Consle页面中,把服务器的端口开放才行,否则AWS会阻止端口的所有连接。

选择 Security Grou

需要添加两个TCP规则和UDP规则分别为

TCP:8080,9933  (8080为SmartFox AdminTools 管理页面的web端口,9933为SmartFox服务本身的TCP端口)

UDP:9933 (9933为SmartFox服务本身的UDP端口)

(这里的端口都是SmartFox的默认端口,当然也可以在CONFIG中对端口进行修改

add rule 以后 Apply Rule Changes以保存Security Groups。

特别注意到Instance选单中确认这个Security Groups绑定倒了这个服务器实例上,绑错了Security Groups规则文件的话会很尴尬的。

此时SmartFoxServer算是部署完毕了,我们可以通过 [你的服务器IP]:8080访问SmartFox AdminTools。

4.设置SmartFoxSever AdminTools Config,开放admin控制页面远程登录。

部署完成后,很重要的一点是会发现想访问SmartFox AdminTools页面配置SmartFox,使用默认的账号:sfsadmin 密码:sfsadmin 始终无法登录到控制台,这是因为SmartFoxServer admin tools 默认配置为本地登录,现在服务器是EC2上,我们需要对SmartFoxServer admin tools的远程登录权限进行配置,回到服务器端进行配置:

nano SmartFoxServer2X/SFS2X/config/server.xml

找到

<adminTcpPort>9933</adminTcpPort>

改成

<adminTcpPort>-1</adminTcpPort>

这样SmartFoxServer admin tools就会对所有IP开放了。

Ctrl+X退出并保存,重启SmartFox,访问SmartFox AdminTools页面,HOST=[服务器IP] PORT=[9933] user=sfsadmin password=sfsadmin访问SmartFox AdminTools页面试试,应该可以成功登录了。

OK,SmartFoxServer算是成功在你的AWS服务器上部署了,而且可以通过SmartFox AdminTools管理台控制,so cool~~!

enjoy!

上一篇:云服务器Apache+MySQL(远程连接)+PHP等环境安装2021.5.9号配置
下一篇:Linux下使用yum安装Mysql之后,无法登陆mysql