Web 服务器
基本信息
| 属性 | 值 |
|---|---|
| Servlet 容器 | Jetty 9.4.26.v20200117(dependencies.gradle:35-64,9 个 shadowImplementation 构件,含 jetty-server/jetty-servlet/jetty-webapp/jetty-security/jetty-annotations 等) |
| 服务器类 | org.dynmap.DynmapCore 内部创建的 org.eclipse.jetty.server.Server(DynmapCore.java:886) |
| 连接器 | NetworkTrafficServerConnector(DynmapCore.java:889) |
| 默认端口 | 8123(DynmapCore.java:878 configuration.getInteger("webserver-port", 8123);仓库 configuration.txt:333 同值) |
| 根路径 | /(DynmapCore.java:957 contextHandler.setContextPath("/")) |
| 停止行为 | setStopAtShutdown(true)(DynmapCore.java:897) |
功能
mod 的核心产出:一个内嵌在服务端进程内的 HTTP 服务器,把已渲染的地图图块与实时玩家数据提供给浏览器。仓库 README.md 首段将其定义为 “a server side addon which adds a browser accessible shared map for your players”,并说明 “GWM is only available as a Forge mod at this time”。
Jetty 构件通过 shadowImplementation 打包并重定位进 mod jar(gradle.properties 的 usesShadowedDependencies = true、relocateShadowedDependencies = true、minimizeShadowedDependencies = true),因此运行时不需要外部 Jetty。
数值
| 数值名 | 值 | 来源 |
|---|---|---|
| 默认端口 | 8123 | DynmapCore.java:878 |
| 空闲超时 | 5000 ms | DynmapCore.java:890 setIdleTimeout(5000) |
| 接受队列长度 | 50 | DynmapCore.java:891 setAcceptQueueSize(50) |
| 默认最大会话数 | 30 | DynmapCore.java:882 configuration.getInteger("max-sessions", 30) |
| 最大会话数下限 | 2 | DynmapCore.java:883 if(maxconnections < 2) maxconnections = 2; |
| 线程池最小线程 | 2 | DynmapCore.java:885 new ExecutorThreadPool(maxconnections, 2, queue) |
| 允许符号链接 | false |
DynmapCore.java:900 configuration.getBoolean("allow-symlinks", false) |
监听地址可配:DynmapCore.java:892-893 仅当 webhostname 不等于 0.0.0.0 时才调用 connector.setHost(webhostname),即 0.0.0.0 表示"不绑定具体地址"。
交互
| 触发 | 行为 |
|---|---|
| 服务启动 | DynmapCore 初始化时创建 Server 并挂载 Handler 链(DynmapCore.java:886-961,webServer.setHandler(hlist) 见 :961) |
| JVM 关闭 | setStopAtShutdown(true) 随 JVM 关闭而停服 |
| 外网访问 | 仓库 README.md 提示需自行在防火墙/路由器放行 8123 |
安全提示
仓库 README.md “Chat settings” 一节明确警告:默认端口 8123 上的 allowwebchat “is sometimes abused by bots etc to send spam”。这是仓库自述的部署注意事项,此处照录。
相关条目
- HTTP 接口 - 挂载在该服务器上的 Servlet 路径
- 网页前端资源 -
extracted/web/下的 PHP/JS/CSS/HTML - 地图存储 - 图块字节的实际落盘位置
- configuration.txt - 端口与会话数的配置面