Search code examples
nginxgoweb-deployment

Deploying multiple Go applications using Nginx


The are two web applications (websites) written on Go. One is turalasgar.pro (here I am using Go built-in server). Another is engossip.com (for now it displays the same ip as former). I have a vps. I know I should use Nginx, but have no idea how? I have heard of Caddy. Please, I need only nginx server, not Caddy. What I need is run two (or more) applications by using my same vps. How should I configure Nginx configuration? Whether by listening to different ports or to the same port. Practical advices and examples highly appreciated.


Solution

  • It's called reverse proxy. Each application uses it's own port to listen. And then you just point to them in nginx config:

    server {
        listen 80;
        server_name turalasgar.pro;
        location / {
            proxy_pass http://localhost:8080;
            ...
        }
    }
    
    server {
        listen 80;
        server_name engossip.com;
        location / {
            proxy_pass http://localhost:8081;
            ...
        }
    }