带子域的NGINX端口转发



我想创建一个Minecraft服务器而且我已经有了一台可以运行多个Minecraft服务器的服务器。

我也有一个OVH我用通配符创建了一个子域。

我想创建子域来访问我的每个Minecraft服务器。

例如,我有两个Minecraft服务器,一个端口25560,另一个端口25561。我的主域名是example.com。我想用"server1.example.com:25565"连接到我的第一个Minecraft服务器,这将重定向到端口25560上运行的服务器。类似地,我想使用"server2.example.com:25565"连接到我的第二台服务器,这将重定向到运行在端口25561上的服务器。

我尝试在NGINX中创建一个配置流模块,但我不能使用server_name来指定子域。

我认为这是可能的,因为我见过许多Minecraft服务器有子域名。我做错了什么?

mymodule-enable/mc.example.com.conf

stream {
server {
listen 25565;
server_name server1.example.com;
proxy_pass minecraft;
}
upstream minecraft {
server 127.0.0.1:25560;
}
server {
listen 25565;
server_name server2.example.com;
proxy_pass minecraft2;
}
upstream minecraft2 {
server 127.0.0.1:25561;
}
}

编辑20/01/2023:

所以我试了别的

stream {
server {
listen 25565;
server_name server1.example.com;
proxy_pass 127.0.0.1:25560;
}
server {
listen 25565;
server_name server2.example.com;
proxy_pass 127.0.0.1:25561;
}
}

但是我得到了这个错误:"server_name" directive is not allowed here

你可以设置一个BungeeCord服务器,让玩家在游戏中切换服务器,或者获得第二个公共IP,并通过另一个端口转发来处理它。我没有看到更多的选项。

最新更新