• 0 Posts
  • 236 Comments
Joined 1 year ago
cake
Cake day: June 20th, 2023

help-circle


  • Reverse proxy is actually super easy with nginx. I have an nginx server at the front of my server doing the reverse proxy and an Apache server hosting some of those applications being proxied.

    Basically 3 main steps:

    • Setup up the DNS with your hoster for each subdomain.

    • Setup your router to port forward for each port.

    • Setup nginx to do the proxy from each subdomain to each port.

    DreamHost let’s me manage all the records I want. I point them to the same IP as my server:

    This is my config file:

    server {
        listen 80;
        listen [::]:80;
    
        server_name photos.my_website_domain.net;
    
        location / {
            proxy_pass http://127.0.0.1:2342;
            include proxy_params;
        }
     }
    
     server {
        listen 80;
        listen [::]:80;
    
        server_name media.my_website_domain.net;
    
        location / {
            proxy_pass http://127.0.0.1:8096;
            include proxy_params;
        }
    }
    

    And then I have dockers running on those ports.

    root@website:~$ sudo docker ps
    CONTAINER ID   IMAGE                          COMMAND                  CREATED       STATUS       PORTS                                                      NAMES
    e18157d11eda   photoprism/photoprism:latest   "/scripts/entrypoint…"   4 weeks ago   Up 4 weeks   0.0.0.0:2342->2342/tcp, :::2342->2342/tcp, 2442-2443/tcp   photoprism-photoprism-1
    b44e8a6fbc01   mariadb:11                     "docker-entrypoint.s…"   4 weeks ago   Up 4 weeks   3306/tcp                                                   photoprism-mariadb-1
    

    So if you go to photos.my_website_domain.net that will navigate the user to my_website_domain.net first. My nginx server will kick in and see you want the ‘photos’ path, and reroute you to basically http://my_website_domain.net:2342. My PhotoPrism server. So you could do http://my_website_domain.net:2342 or http://photos.my_website_domain.net. Either one works. The reverse proxy does the shortcut.

    Hope that helps!