简体   繁体   中英

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.

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;
        ...
    }
}

Well is really easy.

follow this guide:

https://www.digitalocean.com/community/tutorials/how-to-use-martini-to-serve-go-applications-behind-an-nginx-server-on-ubuntu

After you achieved one application working with martini+nginx just add another server block for the other app.

In case you need more information about server blocks:

https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04-lts

Above solutions I tried but didn't work for me

https://gist.github.com/soheilhy/8b94347ff8336d971ad0

server {
listen       ...;
...
location / {
    proxy_pass http://127.0.0.1:8080;
}

location /blog {
    rewrite ^/blog(.*) /$1 break;
    proxy_pass http://127.0.0.1:8181;
}

location /mail {
    rewrite ^/mail(.*) /$1 break;
    proxy_pass http://127.0.0.1:8282;
}
...

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM