资讯专栏INFORMATION COLUMN

ET框架服务端在阿里云CentOS7上的部署运行

Lorry_Lu / 805人阅读

摘要:开放阿里云端口在阿里云控制台管理中,依次选择本实例安全组配置规则添加安全组规则,开放服务端端口同理,再开放资源服务器端口即可。

本文记录了ET服务端从Windows开发环境部署到CentOS7测试环境的全过程。

CentOS环境部署

CentOS部署主要涉及到.Net Core安装、MongoDB安装配置,因为使用到的.Net Core版本为2.1,故使用CentOS7作为测试环境。

1 .Net Core安装

首先查看本地Windows开发环境中.Net Core版本,打开CMD,执行命令 dotnet --info,如下所示:

图中红框内即为版本号: 2.1.301,依据此版本号去 https://dotnet.microsoft.com/... 下载相应安装包。


如红框内SDK 2.1.301 Linux x64

下载完毕后,使用WinSCP工具将安装包上传至CentOS,解压至/usr/local/dotnet,为方便使用,可将该目录添加至环境变量,编辑配置文件:

vim /etc/profile    

在最底下添加如下代码:

PATH=$PATH:/usr/local/dotnet
export PATH

保存后,执行 source /etc/profile 命令使修改生效,此时可以在任意目录通过dotnet --info命令查看当前已安装的dotnet版本:


可以看见与本地Windows中.Net Core版本一致,至此,.Net Core安装完成。

2 MongoDB安装

添加yum源:

vim /etc/yum.repos.d/mongodb-org-3.4.repo

配置如下,复制粘贴后保存退出:

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

使用yum安装:

sudo yum update
sudo yum install -y mongodb-org

等候安装完毕,修改mongoDB配置文件:

vim /etc/mongod.conf

修改net与security域如下:

net:
  port: 27017
  bindIp: 0.0.0.0

#security:
  #authorization: enabled
  

bingIp为允许登陆的ip地址,修改为0.0.0.0表示允许所有ip登陆,添加authorization字段并设置为enabled,表示开启安全验证,暂时屏蔽该字段,后续创建数据库与账户后再开启。

启动mongoDB:

systemctl start mongod.service

查看mongoDB运行状态

systemctl status mongod.service

结果如下,为active(running),表明正在运行:

此时,可以在本地Windows环境中,使用MongoDBCompass或者其他数据库连接工具连接,创建远程mongoDB数据库与集合,此处不详述。创建完数据库后,继续在CentOS中创建用户用于安全验证,在终端输入 mongo 命令进入mongoDB控制台:


切换数据库,如et:

use et

创建用户,假设目标数据库名称为et:

db.createUser({
 user:"root",
 pwd:"123456",
 roles:[{role:"readWrite",db:"et"}]
 })

user: 用户名,pwd:密码,role:readWrite表示读写权限,db:指定数据库,添加成功如下图所示:

授予用户该数据库的权限:

db.auth("root","123456")

返回1表示授予成功:

重新修改上述 /etc/mongod.conf 文件,将security域的注释取消,开启安全验证:

security:
  authorization: enabled

重启mongoDB服务:

systemctl restart mongod.service

至此,mongoDB安装配置完成。

程序发布 1 服务端程序发布

在本地Windows环境中,打开Server工程目录(即Server.sln所在目录),按住SHIFT键,在文件夹空白处单击右键,选择“在此处打开命令窗口”,执行发布命令:

dotnet publish -c Release

生成发布文件夹,即服务端运行程序文件夹,相对于此时所在目录路径为../Bin/publish,将发布文件夹上传至CentOS。

2 FileServer资源服务器发布

资源服务器工程目录为 Tools/FileServer,发布过程与服务端相似,发布目录为 FileServer/publish,可更名为FileServer上传至CentOS即可,此处不再一一赘述。

3 服务端配置

修改本地服务端配置文件,以 Config/StartConfig/LocalAllServer.txt 为例,修改OuterConfig的Address为服务器内网地址,Address2为外网地址:

修改DBConfig的ConnectionString,即mongoDB连接验证字符串,DBName改为相应数据库名称:

root为账号,123456为密码,127.0.0.1表示数据库与服务端程序在同一地址,如不同,可自行填写数据库ip。注意ConnectionString最后的"/et"为指定的登陆数据库,如为空"/",则默认登陆"admin"数据库,因当前账号无"admin"数据库权限,则会导致登陆失败。

修改完毕后,将本地Config/文件夹全部上传至服务器即可,至此,所有文件已准备完成,此时服务器目录结构为:


其中Config为服务器配置,FileServer为资源服务器运行目录,Logs为ET服务端运行后自动生成的日志,publish为ET服务端运行目录。

程序运行 1 运行服务端程序

切换目录至publish文件夹,启动ET服务端:

nohup dotnet App.dll --appId=1 --appType=AllServer --config=../Config/StartConfig/LocalAllServer.txt > runtime.log 2>&1 &

因为运行环境为阿里云,所以直接采用后台运行,避免终端关闭后服务端也关闭。此处踩过一个坑,若运行后,runtime.log疯狂增长,且内容全为异常日志,如下:

该异常触发频率极快,导致runtime.log增长飞快,进程占用cpu极高,可注释服务端源文件Program.cs中如下代码:

// Game.Scene.AddComponent();

不添加ConsoleComponent组件即可,此异常触发的底层原因暂时不明,后续再跟进。

2 运行资源服务器

切换目录至FileServer文件夹,启动资源服务器:

nohup dotnet FileServer.dll > runtime.log 2>&1 &

资源服务器存放的资源文件路径为ET服务端运行目录,如 Server/publish/PC,或者Server/publish/Android等。

3 开放阿里云端口

在阿里云控制台管理中,依次选择“本实例安全组-配置规则-添加安全组规则”,开放ET服务端端口10002:

同理,再开放资源服务器端口8080即可。

至此,所有部署工作完毕,将ET客户端全局配置中的资源路径与服务器地址修改为CentOS地址,即可连接测试环境。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/46246.html

相关文章

  • 阿里centos7线上项目绑定域名,且使用https的方式访问

    摘要:并把它部署到线上,同时,使用了格式。我使用阿里云的服务器。接下来,就是域名解析和绑定,并结合。配置阿里云证书申请阿里云服务控制台安全云盾证书单击购买证书,前去购买证书,填入补全资料,按照默认提示勾选,并绑定域名,即可申请成功。 导读 如今,毕业将近一年了。一直使用公司的老框架,该框架采用前后端不分离的模式。但是,最近公司想要采用前后端分离的模式,并让我重新架构新框架。对于,毕业不久的我...

    jindong 评论0 收藏0
  • 阿里centos7线上项目绑定域名,且使用https的方式访问

    摘要:并把它部署到线上,同时,使用了格式。我使用阿里云的服务器。接下来,就是域名解析和绑定,并结合。配置阿里云证书申请阿里云服务控制台安全云盾证书单击购买证书,前去购买证书,填入补全资料,按照默认提示勾选,并绑定域名,即可申请成功。 导读 如今,毕业将近一年了。一直使用公司的老框架,该框架采用前后端不分离的模式。但是,最近公司想要采用前后端分离的模式,并让我重新架构新框架。对于,毕业不久的我...

    DevTTL 评论0 收藏0
  • 阿里centos7线上项目绑定域名,且使用https的方式访问

    摘要:并把它部署到线上,同时,使用了格式。我使用阿里云的服务器。接下来,就是域名解析和绑定,并结合。配置阿里云证书申请阿里云服务控制台安全云盾证书单击购买证书,前去购买证书,填入补全资料,按照默认提示勾选,并绑定域名,即可申请成功。 导读 如今,毕业将近一年了。一直使用公司的老框架,该框架采用前后端不分离的模式。但是,最近公司想要采用前后端分离的模式,并让我重新架构新框架。对于,毕业不久的我...

    马永翠 评论0 收藏0
  • AI开发者福音!阿里推出国内首个基于英伟达NGC的GPU优化容器

    摘要:阿里云推出国内首个基于英伟达的优化容器月日,在云栖大会深圳峰会上,阿里云宣布与英伟达云合作,开发者可以在云市场下载云镜像和运行容器,来使用阿里云上的计算平台。阿里云成为中国首家与加速的容器合作的云厂商。 摘要: 3月28日,在2018云栖大会·深圳峰会上,阿里云宣布与英伟达GPU 云 合作 (NGC),开发者可以在云市场下载NVIDIA GPU 云镜像和运行NGC 容器,来使用阿里云上...

    Sunxb 评论0 收藏0
  • 人工智能融入“”端

    摘要:去年月,阿里云宣布将设立阿里云广东研发中心,招募名云计算和人工智能工程师,推动前沿技术与广东产业融合。吴维刚表示,人工智能与云计算,两者不是同一事物,但是相互发展。近年来,随着互联网和移动互联网的蓬勃发展,大数据、云计算、人工智能、物联网等新技术也迎来了广阔的发展空间。去年,阿里云工业互联网全国总部正式在广州揭牌成立,阿里云将联合广东本地合作伙伴,共同打造服务全国的工业大脑。去年9月,华为与...

    yacheng 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<