作者tonylo2ooo (Logo)
看板Minecraft
标题Re: [问题] Dynmap独立运作
时间Thu Nov 10 19:49:03 2016
※ 引述《kiney (西提王国Citynoland)》之铭言:
: 想请位各位,伺服器有安装 Dynmap
: 但不知道他能否拖出来独立运作呢?
: 也就是伺服器关闭的时候他依然可以运作呢?
: 我试着进去他的 web资料夹 打开 index.html
: 无法像一般网站一样开启
: 不知道各位有没有人知道怎麽让他独立运作呢?
不想把问题讲得太复杂,简单来说
dynmap插件本身就像一个小伺服器,他对特定端口(port)输出资料
你不开minecraft server + dynmap 就等於没有小伺服器帮你运作
另外写一个小伺服器去读那些已经处理好的图档也很没意义,
等於重新发明轮子,我提供你一个做法,是我确定可以用的。
另外,因为中文相关资料很少,以下重要google 用名词(你还是得自学一些东西)
我通通都用英文,方便你接下去查你遇到的技术问题
技术文开始:
这种情形你多半是有两台机器,或是想让server关的时候还是可以被人家读地图
我当初有这需求是因为有人拿dynmap server 发动DOS攻击,
但我伺服器不能关小地图(没地图的领地占有不好玩,加上资源稀少要查地图)
如果你本来的server用了16G记忆体去开 另一台只是作为读地图用
例如只要少少的1G, 甚至800M
你还是得开两个spigot or bukkit server,
因为你不想重新写一套读dynmap格式的伺服器
假设游戏server ip : 112.114.116.118 , map server ip: 112.666.118.666
想要有分散两地的伺服器但是用同样的域名,你得另外学
(例如 game server : play.opserver.com, map server : map.opserver.com)
也就是你一样开两个server 的程式,地图server不要用25565 port开
(同一台机器的话会冲)
而且要设定白名单,并且不要让任何人连进来(他只是拿来跑dynmap plugin的)
可以弄个25566 25567 随便,然後只要注意你的dynmap port是多少即可
他预设是8123,所以你实际是会用到的网址是
112.114.116.118 叫玩家minecraft连这里
想给人看小地图
http://112.666.118.666:8123
接下来你需要做异地备份,把game server的map region档拷贝(并且覆盖)
map server的region档,让map server的dynmap plugin去render tile as png images.
如果你想要呈现世界名称 my_creative_world 的地图,并且拷贝到map server
那你就要安装异地备份的软体,从
112.114.116.118 的server路径下/my_creatvie_world/region/
里头,所有的 r.X.Y.mca 档案 (chunk file)
通通备份到 112.666.118.666 的server路径下/my_creative_world/region中
至於你map server要不要叫my_creative_world 其实随便你
反正你只是要呈现(render)到网页上
但dynmap有一些地方会把你地图名称显示出来,为了玩家不要混淆
还是建议用一样的名字,以防有太多世界要复制 自己忘记怎对应
PS:
这边的r.X.Y.mca 的X,y 会是整数,
存着某一个区块的地图资料,转换到实际座标的话可以用这个网站
https://dinnerbone.com/minecraft/tools/coordinates/
至於异地备份软体 可以考虑linux 内建的scp
(或是你的异地 是本机, 随便,看map server跟game server
有没有在同一个机器上,有的话不用花网路资源)
scp -r
[email protected]:/path/to/server/my_cool_creative/region/*.mca
/my_map_server/my_cool_creative/region/
这样就会把112.114.116.118(game server)的地图档
贴到 本机(map server)的server资料夹中的region路径下
然後map server 的dynmap plugin就可以读了
最後,你要决定你多久备份一次,因为那些地图档案大小不小
我是推荐一个礼拜一次,而且挑半夜,你强一点可以设定批次处理
写个bash档,loop, 每N秒跑一次指令
这我就不继续讲了,可以自己查
除了scp有更好的,会自动比较异同,相同档案(没被修改过的档案)不会备份的
你有需要可以自己查
要做到多好,你可以自己决定要投入多少时间
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.45.77.25
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Minecraft/M.1478778546.A.7D7.html
※ 编辑: tonylo2ooo (114.45.77.25), 11/10/2016 19:54:31
1F:→ cs8425: 搞这麽复杂做啥... map server用别的帐号开 11/11 02:07
2F:→ cs8425: softlink到地图档 让权限是唯读就好了 11/11 02:07
3F:→ tonylo2ooo: 因为他说关闭不晓得是哪种,所以假设关机的 11/11 02:09
4F:→ tonylo2ooo: 我只是提供我当初被DOS的方法(得把网路分开) 11/11 02:11
5F:→ tonylo2ooo: 不过也没很复杂吧,我只是怕原po新手讲细一点 11/11 02:12
6F:→ tonylo2ooo: 熟的就想成duplicate多少东西,你讲的方法连帐号都 11/11 02:13
7F:→ tonylo2ooo: 不用换不也可以吗, 同一台机器开两个server跨路径 11/11 02:14
8F:→ Flymok: 不是只要到设定档里把 disable-webserver: false 改 true 11/17 22:03
9F:→ Flymok: 同一台机器上额外架好 http server(apache, lighttpd etc. 11/17 22:05
10F:→ Flymok: 把 plugins/dynmap/web/ 下的东西复制到 wwwroot (自订的 11/17 22:08
11F:→ Flymok: 再参考 Setting up without the Internal Web Server 11/17 22:10
13F:→ Flymok: 你写的说明根本更复杂... 11/17 22:14
那如果想要想台机器是分开的,不同机器的做法?
果然说明了一个道理
在网路上要找到一个问题的解答不是问那个问题
是提供一个错误的答案
感谢大大教学 ._.
※ 编辑: tonylo2ooo (220.137.5.96), 11/19/2016 20:02:41
14F:→ Flymok: 您的教学文也是一种做法,毕竟条条大路通罗马, 11/20 18:01
15F:→ Flymok: 而且是实际验证可以解决需求的方法,只是... 11/20 18:02
16F:→ Flymok: 我不认为提出问题的人他的需求跟您一样高深难解... 11/20 18:07
我确实小题大作了,
我当初是因为dynmap 被当成(D)DOS的对象花了很多时间
原PO要的只是原本就有的功能
※ 编辑: tonylo2ooo (118.165.16.83), 11/21/2016 03:52:09