I searched already that it has something to the redirect module in apache, but I decided to ask here if someone can give me a direction where I should follow, because I am a bit lost.
The current situation is: I have a droplet with CentOS 7 x64 and within this droplet my docker
user with some docker containers (just showing 2 to better exemplify):
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f381c6a9a341 image1 "docker-entrypoint..." 4 weeks ago Up 3 weeks 0.0.0.0:15435->5432/tcp app1_postgres
69fb1e99b463 image2-nodejs_web "/docker-entrypoin..." 3 weeks ago Up 3 weeks 0.0.0.0:10443->443/tcp app1_nodejs
There is a container for the nodejs app and another container of the database for this app. Everything works and they can communicate with each other.
Besides, in this same droplet (outside docker) I have the user apache
where I run httpd with my static portfolio in my custom domain https://www.myportfolio.dev.
What I would like: If I access https://www.myportfolio.dev/apps/app1 it redirects somehow from the apache
to the docker container running my nodejs app in the exposed port 10443.
What I could do until now: if someone access https://www.myportfolio.dev:10443, which is the https port I have opened for the nodejs container, the app is accessible, but this is not the approach I want. I want to have the /apps/APP_NAME in the url redirecting to the specific containers.
Additional info 1: I usually have routes in my nodejs and react apps, for example:
https://myapp.com/ https://myapp.com/login https://myapp.com/home https://myapp.com/products https://myapp.com/insert
among other routes, and the redirect should work fine for this routes also.
Additional info 2: Either in my portfolio either in my apps I always use SSL. Please correct me if I am wrong, but the SSL key pairs for my portfolio can also be used for all my apps, because the apache httpd remains the same, it will be used as a “proxy” !?
Additional Question: Should I also create a subdomain for this app from the example before I configure them in apache? Something like CNAME e.g. myapp1.myportfolio.dev?
I would be really thankful for every help I receive here.
Thanks in advance!
Best Regards, Gabriel
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
Hi there @gabrielbrde,
What you could do is configure Apache as a reverse proxy, that way you can have the traffic for specify different URLs to be proxied to specific Docker containers, for example, it would look something like this:
You can take a look at this tutorial here on how to configure Apache as a Reverse Proxy with
mod_proxy
:https://www.digitalocean.com/community/tutorials/how-to-use-apache-as-a-reverse-proxy-with-mod_proxy-on-ubuntu-16-04
Hope that this helps! Regards, Bobby
Hi @tinieblas ,
thanks for your reply to my post.
I tried what you said but I still get errors and do not really know how to fix it.
Maybe a better idea would be to create subdomains and use them instead of using my portfolio domain to it.
Kind Regards
Hello everyone, just a short update:
Yesterday I saw my error, I could access https://mywebsite.dev:10443 because I was running docker with 0.0.0.0 (which means the docker container was also reachable for outside).
I corrected it by changing to 127.0.0.1 in the docker-compose.yml:
Now at least I cannot reach anymore by typing https://mywebsite.dev:10443.
However my problem is still not solved, I do not know what else I can do to make the proxy works correctly and finally access my app(s) through https://mywebsite.dev/apps/app_name.
I am thankful for every help!
Best Regards, Gabriel