服务器上建Git仓库

服务器上建Git仓库,第1张

$ apt-get install git

$ sudo adduser git

收集所有需要登录的用户的公钥,公钥位于id_rsapub文件中,把我们的公钥导入到/home/git/ssh/authorized_keys文件里,一行一个。
如果没有该文件创建它:

首先我们选定一个目录作为Git仓库,假定是/home/gitlab/runoobgit,在/home/gitlab目录下输入命令:

一定要将初始化的仓库给Git
$ chown -R git:git probjectgit

$ git clone git@<ip>:/home/gitlab/probjectgit
然后就可以推送了

出于安全考虑,创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。

仓库(Repository)是集中存放镜像的地方,仓库分为公有仓库与私有仓库

一个容易混淆的概念是注册服务器(Registry)。实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。从这方面来说,仓库可以被认为是一个具体的项目或目录。例如对于仓库地址 ldockerpoolcom/ubuntu 来说,dldockerpoolcom是注册服务器地址,ubuntu是仓库名。

大部分时候,并不需要严格区分这两者的概念。

注册服务器、仓库、镜像关系如下

电脑主机在不考虑稳定性的前提下是可以用做服务器。
1在电脑主机上安装“IIS”可以实现WEB服务器的功能。
2IIS(Internet Information Server,互联网信息服务)是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。
3IIS是Windows中的软件。Win2k/2k3/xp (XP家庭版没有IIS)都可以在“控制面板→添加/删除程序→添加/删除Windows组件→Internet信息服务(IIS)”前的小钩去掉(如有),重新勾选中后按提示 *** 作即可完成IIS组件的添加。用这种方法添加的IIS组件中将包括Web、FTP、NNTP和SMTP等全部四项服务。
4 有了IIS意味着能发布网页,并且有ASP(Active Server Pages)、JAVA、VBscript产生页面,有着一些扩展功能。IIS支持一些有趣的东西,象有编辑环境的界面(FRONTPAGE)、有全文检索功能的(INDEX SERVER)、有多媒体功能的(NET SHOW)
没有最低配置,以提供服务的资源或程序需要为准。
一、安装IIS
从桌面打开“我的电脑“,进入后打开“控制面板“,好,这时找到“添加/删除程序“,进行双击;在d出的窗口中,单击“添加/删除Windows组件“,等待,会
d出一个窗口,这里可以进行选择,看要安装什么组件。
也就是在这一个名称前面的四角框打上勾;(当然,也可以对“Internet信息服务(IIS)“这一条进行双击,这时就会d一个窗口,里面又可以进行选择,看哪些不需要安装都可以去掉勾。)
选好了以后,单击“下一步“,这时就会d出一个进度条,安装过程中会提示插入跟当前所用的系统版本相对应的系统安装盘;例如:系统是XP,那就插入XP系统安装盘;
2000就插入2000系统安装盘。建议用2000server的的系统做服务器会比较稳定,而且人数访问限制可以自由设置。放入光盘后,单击确定。完成后,开始设置IIS。
二、设置IIS
也是打开“控制面板”--->然后打开“管理工具”--->这时找到刚安装的“Internet 服务管理器“,双击;看到的是“Internet信息服务“窗口,
这时对,左窗口的“Internet信息服务”文字下边的“电脑的计算机名旁的+号进行单击,d出下一级目录,现在只要做网站服务器,其它功能不需要,都把它停止运行,
免得被人攻击,如:”默认FTP站点“,现在不需要,对该项进行右击选”停止“。看到的都照这个步骤弄”停止“服务,只留一个”默认web站点”为”启动“状态。
接下来开始设置站点吧。对“默认web站点”右击,选择”属性“,d击一个名为”默认web站点属性”的窗口,要设的第一个“Web站点“:
详细设置列表:
Web 站点标识
说明: 默认Web站点
IP 地址: (全部未分配)
TCP 端口: 80 (填80)
连接
无限 (不限制访问人数,就单击前边的圆圈)
限制到 (要限制访问人数,就单击前边的圆圈和输入限制连接的人数)
连接超时:30(秒)
启用保持 >首先要知道游戏类型是什么,然后知道承载人数是多少,以及开发周期多少。需要根据这些来决定游戏架构和技术选型。

对于gameplay来说,本身就是个大循环,一定频率进行tick,接收来客户端或者其他服务器的rpc,处理逻辑,然后数据落地以及发送数据给客户端或者其他服务器,一般gameplay来说在同一个进程里都是同步的方式去编写,同步的实现大多数是单线程的,或者使用coroutine来实现actor这种模式。大部分游戏交互都是比较多,所以不论service和service之间的交互还是玩家和玩家之间的交互,如果考虑多线程的同步的问题,会非常复杂以及很容易做错,所以一个service内同一个时刻都是在一个线程中执行的。

针对mmo或者一些竞技类游戏往往有场景管理的概念,就是游戏AOI,比如一个玩家移动,需要告诉周围所有的玩家,复杂度在nn,如果减少这个n,就有了AOI算法,比如九宫格,十字链表等,如果刚开服的时候很多人挤到一个主城中,就算采用九宫格和十字链表等AOI等算法,往往同屏内玩家数量还是很大,客户端渲染的单位数量比服务器少一个数量级的,所以场景管理这里还可以有个分线的做法,玩家多的时候,不同线不可见,玩家少的时候进行合并。

如果做帧同步一些关键点为表现要和逻辑分离,随机算法和随机种子的一致性,数学库浮点换定点,三角函数采用泰勒展开或者查表法,需要保序的容器,timer不能基于钟表时间而需要帧timer,以及防作弊(一般都是投票法,或者服务器跑个验证端)

现在很多游戏在线更新bug甚至不停服更新慢慢变成一种强需求了,实现这种方式主要使用脚本热更新,热重启+逻辑内存以及ab服切换来实现。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/13350957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-19
下一篇 2023-07-19

发表评论

登录后才能评论

评论列表(0条)

保存