How do I point my custom domain to my IP:Port (41.111.20.36:8080)?

January 2, 2016 20.5k views
Docker DNS Ubuntu

My word press app is working within a docker container with host port 8080 bound to the web container 80. I am able to access the app using the public IP with port 8080 (41.111.20.36:8080), but the app cannot be accessed using the only IP (41.111.20.36). Secondly, I have pointed my custom domain to digital servers and have matched the droplet and the domain name, I have even created a cname record pointing to that custom domain. But I am unable to access my application using the domain name, and I am unable to access it using the domainename:8080.... I assume I should be able to access the web container with only the domain name.... Am I missing something? Even inside the server, curl localhost triggers an error with the message, the server refused connection on port 80.... but curl localhost:8080 works fine. Any suggestions?

1 comment
1 Answer

Hi!

DNS only handles domain -> IP mapping. It cannot map the default port (80) to a custom port–you will have to use a reverse proxy for that. nginx is one of the most popular reverse proxies that are used to do that.

First, add a DNS record for your subdomain.

Then, install nginx:

Add a new server block:

/etc/nginx/sites-available/myapp
server {
    listen 80;
    server_name myapp.domain.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Finally, enable it and restart nginx:

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/myapp
sudo service nginx configtest
sudo service nginx restart

You should now be able to browse to http://myapp.domain.com and see the contents of http://your droplet's ip:8080.

by Justin Ellingwood
Nginx is one of the most popular web servers in the world. It is extremely flexible and powerful and can be used to efficiently host sites and applications small or large sites and applications. In this guide we'll cover how to install and set this up on an Ubuntu 14.04 server.
Have another answer? Share your knowledge.