[GH-ISSUE #2064] Sub-domain redirection for Streams #1491

Closed
opened 2026-02-26 07:31:16 +03:00 by kerem · 3 comments
Owner

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:

grafik
This is what it could look like, if it can be implemented

Originally created by @official-Cromatin on GitHub (May 23, 2022). Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/2064 <!-- Are you in the right place? - If you are looking for support on how to get your upstream server forwarding, please consider asking the community on Reddit. - If you are writing code changes to contribute and need to ask about the internals of the software, Gitter is the best place to ask. - If you think you found a bug with NPM (not Nginx, or your upstream server or MySql) then you are in the *right place.* --> **Is your feature request related to a problem? Please describe:** <!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] --> 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:** <!-- A clear and concise description of what you want to happen. --> 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:** <!-- A clear and concise description of any alternative solutions or features you've considered. --> So far I haven't found any alternatives yet **Additional context:** <!-- Add any other context or screenshots about the feature request here. --> ![grafik](https://user-images.githubusercontent.com/92319467/169813264-f0bd6dfc-b7db-44f1-b864-dcd213f878ec.png) This is what it could look like, if it can be implemented
kerem 2026-02-26 07:31:16 +03:00
Author
Owner

@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.

<!-- gh-comment-id:1137428757 --> @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.
Author
Owner

@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.

<!-- gh-comment-id:1137784338 --> @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.
Author
Owner

@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.

<!-- gh-comment-id:1138365062 --> @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.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/nginx-proxy-manager-NginxProxyManager#1491
No description provided.