mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2026-04-26 01:45:54 +03:00
[GH-ISSUE #2064] Sub-domain redirection for Streams #1491
Labels
No labels
awaiting feedback
bug
cannot reproduce
dns provider request
duplicate
enhancement
enhancement
enhancement
good first issue
help wanted
invalid
need more info
no certbot plugin available
product-support
pull-request
question
stale
troll
upstream issue
v2
v2
v2
v3
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/nginx-proxy-manager-NginxProxyManager#1491
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @official-Cromatin on GitHub (May 23, 2022).
Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2064
Is your feature request related to a problem? Please describe:
Yes, I would like to be able to reach different game servers within my network from different sub-domains
Describe the solution you'd like:
If I specify a proxy host, I have the option to specify an input subdomain and an internal IP address as the destination, so far so good.
The other day I found out while browsing in the Web Interface that I can also specify a UDP port in the streams in addition to the TCP port, unfortunately I cannot specify an input subdomain as with the streams in order to be able to specify which traffic is forwarded from which address to which internal address.
As an example, it is not possible for me to access the server with the internal IP 192.168.178.2 (port 25665) via the domain vanilla.domain.de, and the internal IP 192.168.178.4 (port 25565) via the address dev.domain.de
Describe alternatives you've considered:
So far I haven't found any alternatives yet
Additional context:
This is what it could look like, if it can be implemented
@the1ts commented on GitHub (May 25, 2022):
Aren't streams just a TCP or UDP connection that nginx proxies onwards? so are just IP to IP, there is no way to distinguish between multiple subdomains that all use the same IP, the actual traffic which doesn't have to be http may not even contain the subdomain it was destined for only source and destination IPs. Or am I misunderstanding a tech I've not used.
I think the only way you can do this is have one use vanilla.domain.de:25565 -> 192.168.178.2:25565 and the other to use dev.domain.de:25566 -> 192.168.178.4:25565 (note the different port). Since these are just minecraft servers, the client does take a different port in the connection string.
@official-Cromatin commented on GitHub (May 25, 2022):
I had thought that this information could be taken up when establishing a connection to make the forwarding.
After the days I had dealt with it again intensively, I think the only solution to this problem (without the users having to change the port) is an SRV record in the domain.
I don't know if that's possible because this information is not transmitted.
I wanted to avoid having to change the ports as much as possible because it leads to complications at some points
However, if there is no other option, and only http transmits this information when establishing the connection, I probably have to go the way with the ports.
However, now that I am writing this message I remember that the load balancer of Kemp supports this feature at least as far as I have noticed.
@the1ts commented on GitHub (May 26, 2022):
I think for minecraft the easiest solution for this is the addition of an SRV record with the non-standard port and its subdomain then a non-standard port will not be seen by the player, only the admin and the minecraft client (after the DNS lookup) will know its a non-standard port.
I've worked with load balancing/proxying that makes decisions on things other than the HTTP Host header, Apache and mod_security for example, but those are very complex tools which don't really live in a tool to simplify SSL certs and HTTP Proxying, there is always a battle to keep simple tools simple.