71 lines
1.4 KiB
Plaintext
71 lines
1.4 KiB
Plaintext
stream {
|
|
# Map domain names to destinations
|
|
map $mc_preread_server_name $mcname {
|
|
example.com mc_RealServer;
|
|
default $mc_err;
|
|
}
|
|
|
|
# example of a destination.
|
|
# The IP is where the actual minecraft server is.
|
|
upstream mc_RealServer {
|
|
server 127.0.0.1:25565;
|
|
}
|
|
|
|
# nginx will listen on port 25565 everywhere
|
|
server {
|
|
listen 0.0.0.0:25565;
|
|
listen [::]:25565;
|
|
js_preread mcroute.preread;
|
|
proxy_pass $mcname;
|
|
}
|
|
|
|
## internals ##
|
|
# change the ports/ips if you need multiple instances of this thing for some reason
|
|
# upstream and server blocks must match!
|
|
js_import mcroute.js;
|
|
js_set $mc_preread_server_name mcroute.where;
|
|
js_set $mc_hout mcroute.handler_out;
|
|
js_set $mc_stt mcroute.status_type;
|
|
server {
|
|
listen 127.0.0.2:65338;
|
|
js_filter mcroute.unb64;
|
|
js_access mcroute.err404;
|
|
return $mc_hout;
|
|
}
|
|
server {
|
|
listen 127.0.0.2:65337;
|
|
js_filter mcroute.unb64;
|
|
js_access mcroute.err503;
|
|
return $mc_hout;
|
|
}
|
|
server {
|
|
listen 127.0.0.2:65336;
|
|
js_filter mcroute.unb64;
|
|
js_access mcroute.ponger;
|
|
return $mc_hout;
|
|
}
|
|
server {
|
|
listen 127.0.0.2:65335;
|
|
js_filter mcroute.unb64;
|
|
js_access mcroute.disconner;
|
|
return $mc_hout;
|
|
}
|
|
map $mc_stt $mc_err {
|
|
"disconnect" mc_disconnecter;
|
|
"ping" mc_ping;
|
|
"status" mc_404_status;
|
|
default error;
|
|
}
|
|
|
|
upstream mc_404_status {
|
|
server 127.0.0.2:65338;
|
|
}
|
|
upstream mc_ping {
|
|
server 127.0.0.2:65336;
|
|
}
|
|
upstream mc_disconnecter {
|
|
server 127.0.0.2:65335;
|
|
}
|
|
## /internals ##
|
|
}
|