Files
netease-bedrock-wiki/mcguide/27-手机网络游戏/课程10:使用Spigot开服/11-部署服务器.md
2025-07-31 17:53:14 +08:00

120 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
front:
hard: 入门
time: 60分钟
---
# 部署服务器
## 准备阶段
在进行Java版网络游戏搭建和部署流程前首先需要注册成为我的世界开发者并完成入驻申请申请开发阶段服务器。具体步骤请详细阅读如下文档
1. [开发准备阶段概述](../课程1成为Apollo服主及相关准备/第2节开发准备阶段概述.md)
2. [入驻申请](../课程1成为Apollo服主及相关准备/第3节入驻申请.md)
3. [申请开发阶段服务器](../课程1成为Apollo服主及相关准备/第4节申请开发阶段服务器.md)
4. [使用数据库前端连接数据库](../课程1成为Apollo服主及相关准备/第5节拓展使用数据库前端连接数据库.md)
5. [连接开发机](../课程1成为Apollo服主及相关准备/第5节连接开发机.md)
## 特别提示
1. 拿到机器后,要先访问添加白名单,之后才可以正常登入
2. spigot机器的java环境对应的操作命令分别是**java8**和**java18**其中运行Spigot请使用java8(具体原因详见[常见问题合集](./90-常见问题合集.md))
## JAVA服部署流程
- 在准备好开发机后,连接上开发机
- 通过服主各自的Java服框架部署各自的Java服(必须存在BC服)
- 经过初步的调研确定目前使用的Spigot版本为1.12.2因此为了兼容基岩版1.18客户端,需要在**Spigot服**使用**ViaVersion**插件
- 下载[**ViaVersion插件**](https://www.spigotmc.org/resources/viaversion.19254/),并放置于 **Spigot服目录/plugins/** 目录下。
**注由于Viaversion转换1.20.5版本头颅模型会过滤掉非法昵称的信息导致自定义方块和中文昵称的头颅模型出错因此无法直接使用官网版本。可选择MCS内容库中的“ViaVersion-4.10.2”资源或自行修改。**
- 下载[**SpigotMaster插件**](./99-下载内容.md#SpigotMaster插件),并放置于 **Spigot服目录/plugins/** 目录下。
- 下载[**BungeeMaster插件**](./99-下载内容.md#bungeemaster插件),并放置于 **BC服目录/plugins/** 目录下。
-**BC服目录/plugins/** 下,新建文件夹 **BungeeMaster**,并在 **BungeeMaster** 文件夹下新建文件 **config.yml**此为BungeeMaster插件配置
![目录结构1](./res/bc01.png)
![目录结构2](./res/bc02.png)
![目录结构3](./res/bc03.png)
- 然后填入如下内容,其中
- server_id 取值区间在[12000, 14000)内,并且保持单次部署唯一即可
- master_port端口范围要求[29000,31000)
- **master_port**是指BC服监听Master服连接所用端口请注意与下述用于原生游戏的**query_port**区分,以免造成端口冲突
- 填写完毕后请记下相关参数后面需要在studio中填写
![config.yml](./res/bc04.png)
- 打开**BC服目录/config.yml**文件(此为bc服配置)配置bc服监听的端口端口范围要求[29000,31000)
- 记下端口参数后面需要在studio中填写
- 注意,此处的**query_port**和**host中冒号后面的端口值**,请保持一致
- 该处的端口,均为**BC服**用于监听来自**Geyser**服相关连接的端口
![config.yml](./res/bc05.png)
## 负载/协议转换部分部署流程
- 打开MCStudio选择基岩版服务器并选择右上角新建选项打开后选择空白Spigot服
![Studio部署流程](./res/studio1.png)
- 选择更多后,点击服务器配置,开始配置
![Studio部署配置](./res/studio2.png)
- 其中,控制服的配置不再赘述,和基岩版网络服务器相似
- 代理服和协议服实际上是同一个进程,所以配置合在一起说明:
- 每个proxy内部会启动一个geyser因此只需要调整proxy的数量不需要配置geyser的数量。
- proxy单进程内存暂时未被使用
- geyser单服最大人数建议为200~300人正式上线后根据proxy与geyser进程的负载情况再进行调整。0表示无上限但正式服强烈建议设置最大人数避免整服卡死。
- geyser单进程内存指geyser的java部分的最大可用堆内存。0表示使用默认值开发与审核阶段默认为1G正式阶段默认为6G。一般来说6G内存至少可以承载500人。
![框架上半部分部署](./res/studio3.png)
- BC服的配置则根据Java服部署中BC服的数量和配置来决定。如根据上个步骤截图数据则最终配置为
![框架上半部分部署](./res/studio4.png)
- 如图所示BC服端口即为**query_port**
- 控制服端口即为**master_port**
- 配置完成后,点击部署
- 查看日志若部署成功则可以通过工具箱打开ModPC开发包进入游戏开始测试
![框架上半部分部署](./res/studio5.png)
## 部署多个代理服与BC
- 在代理服的配置界面填写数量即可部署多个代理服(协议服与代理服为一对一的关系,所以这个数量也是协议服的数量),点击增加代理服则可以在不同机器上部署代理服。
- 如果需要部署多个BC
1. 在机器上部署好多个BC可以分布在不同机器上按上面的指引分别配置好server_idmaster_portquery_port。注意这三个字段不同bc之间不能有重复。
2. 在studio的BC服配置界面点击增加BC服然后填写每个BC的ipserver_idmaster_portquery_port。
3. 重新部署即可与多个BC组网master会平均分配玩家到各个BC。
## Proxy与Geyser服的性能参数
一个proxy可以支撑300个玩家的跑图及连续登录并且维持流畅运行此时geyser建议分配4G的内存上限整个进程最多会占用5G内存以及5个核心的cpu。
## 常见部署问题合集
[常见部署问题合集](./90-常见问题合集.md)