0

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
0

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.