1

Firstly I'm not sure if this was the right site to post this question, but it seemed appropriate, since this is a DNS/Server issue.

I have 3 different web services running on a single machine, and i though that i would make my life and my clients life easier if they could connect to the services via a domain.

Personally I am not very experienced in server/domain setup, but I though I would give it a shot. The intended result is this:

servicea.domain.com -> remoteIP:1000
serviceb.domain.com -> remoteIP:2000
servicec.domain.com -> removeIP:3000

I have been looking into a solution for about 2-3 hours now, and from what I can see, I need to setup a DNS SRV record like this: _service._tcp.servicea.domain.com and a DNS A record that point to the IP address: servicea.domain.com -> remoteIP:1000

I have so far had some issues with the setup of the SRV record, I know the first value is the symbolic name of the service, but what does that mean? As far as I can see on this link List of symbolic names there is no match for what I need. Does the symbolic name need to be specific or can I make up my own name?

What I have tried so far is setup a SRV record like this: _sysconsole._tcp.sys.domain.com and setting up an A record like this: sys.domain.com -> remoteIP:1000

Am I on the right track here, or am I no where near the correct solution?

If there is a lot of spelling errors and grammatical flaws in my question, please bear with me, as english is not my native language.

1

2 Answers 2

0

Generally speaking, you cannot use DNS to change the specific port that a client is connecting on. There are exceptions, like SIP or XMPP, but HTTP is not a service that uses SRV records to negotiate which port to use.

Instead, what you want to do, assuming this is HTTP traffic, is use a reverse proxy (as suggested by HermanB).

You would have a subdomain for each service you want to expose, all pointing to your specific hosting IP. You would then have a reverse proxy such as NGINX listening on ports 80(http)/443(https). The reverse proxy would look at what DNS name was used to reach the IP, and forward the traffic to your internal network accordingly.

For example, if NGINX sees a request come in for service1.example.com, it will forward the traffic to 192.168.1.10:1000, but if it sees a request for service2.example.com, it forwards it to 192.168.1.10:2000.

1
  • I am assuming the reverse proxy needs to be installed on the domain server right? Oct 2, 2020 at 6:25
1

For web services you typically run a dedicated product or a web server as a reverse proxy on the default http/https ports.

The reverse proxy can use the host header in the http request to forward your end users requests to the correct backend that runs the non-default port.

See for instance https://serverfault.com/a/753155/546643

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .