我正在尝试在同一台机器上的两个不同端口上运行两个 Minecraft 服务器。我想根据子域引用它们:
one.example.com -> <minecraft>:25500
two.example.com -> <minecraft>:25501
我以前用过 nginx 做类似的事情,但它不适用于 Minecraft。它以 http 状态 400 响应。这是我日志中的示例:
192.168.0.1 - - [21/Apr/2013:17:25:40 -0700] "\x02<\x00\x0E\x00t\x00h\x00e\x00s\x00a\x00n\x00d\x00y\x00m\x00a\x00n\x001\x002\x003\x00\x1C\x00t\x00e\x00s\x00t\x00.\x00r\x00y\x00a\x00n\x00s\x00a\x00n\x00d\x00y\x00.\x00i\x00s\x00-\x00a\x00-\x00g\x00e\x00e\x00k\x00.\x00c\x00o\x00m\x00\x00c\xDD" 400 173 "-" "-"
这是我的 nginx 配置:
upstream mine1 {
server 127.0.0.1:25500;
}
upstream mine2 {
server 127.0.0.1:25501;
}
server {
listen 25565;
server_name one.example.com;
access_log /var/log/nginx/one.access;
error_log /var/log/nginx/one.error;
location / {
proxy_pass http://mine1;
}
}
server {
listen 25565;
server_name two.example.com;
access_log /var/log/nginx/two.access;
error_log /var/log/nginx/two.error;
location / {
proxy_pass http://mine2;
}
}
如果我没看错,nginx 会以 400 响应。我的猜测是 Minecraft 客户端没有发送有效的 HTTP 标头,而 Nginx 正在抛出请求。但我完全不知所措。任何帮助,将不胜感激。