作者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://www.ptt.cc/bbs/Minecraft/M.1478778546.A.7D7.html
※ 編輯: tonylo2ooo (114.45.77.25), 11/10/2016 19:54:31
→ cs8425: 搞這麼複雜做啥... map server用別的帳號開 11/11 02:07
→ cs8425: softlink到地圖檔 讓權限是唯讀就好了 11/11 02:07
→ tonylo2ooo: 因為他說關閉不曉得是哪種,所以假設關機的 11/11 02:09
→ tonylo2ooo: 我只是提供我當初被DOS的方法(得把網路分開) 11/11 02:11
→ tonylo2ooo: 不過也沒很複雜吧,我只是怕原po新手講細一點 11/11 02:12
→ tonylo2ooo: 熟的就想成duplicate多少東西,你講的方法連帳號都 11/11 02:13
→ tonylo2ooo: 不用換不也可以嗎, 同一臺機器開兩個server跨路徑 11/11 02:14
→ Flymok: 不是只要到設定檔裡把 disable-webserver: false 改 true 11/17 22:03
→ Flymok: 同一台機器上額外架好 http server(apache, lighttpd etc. 11/17 22:05
→ Flymok: 把 plugins/dynmap/web/ 下的東西複製到 wwwroot (自訂的 11/17 22:08
→ Flymok: 再參考 Setting up without the Internal Web Server 11/17 22:10
→ Flymok: 你寫的說明根本更複雜... 11/17 22:14
那如果想要想台機器是分開的,不同機器的做法?
果然說明了一個道理
在網路上要找到一個問題的解答不是問那個問題
是提供一個錯誤的答案
感謝大大教學 ._.
※ 編輯: tonylo2ooo (220.137.5.96), 11/19/2016 20:02:41
→ Flymok: 您的教學文也是一種做法,畢竟條條大路通羅馬, 11/20 18:01
→ Flymok: 而且是實際驗證可以解決需求的方法,只是... 11/20 18:02
→ Flymok: 我不認為提出問題的人他的需求跟您一樣高深難解... 11/20 18:07
我確實小題大作了,
我當初是因為dynmap 被當成(D)DOS的對象花了很多時間
原PO要的只是原本就有的功能
※ 編輯: tonylo2ooo (118.165.16.83), 11/21/2016 03:52:09