使用代理服务器在Golang应用程序之间切换

时间:2017-04-10 15:53:57

标签: nginx go caddy

我有一台带CentOS的服务器,我将至少运行4个Golang应用程序,每个应用程序都是一个不同的站点,我应该能够在浏览器中使用域/子域进行访问,如下所示:

  • dev00.mysite.com
  • dev01.mysite.com
  • dev02.mysite.com
  • dev03.mysite.com

因此,我需要配置某种软件,将请求重定向到正确的Golang进程。每个站点都将在不同的端口运行,例如,如果有人调用dev00.mysite.com,我应该能够将该请求发送到 dev00 站点的进程(这是用于开发porpouses,而不是生产)。所以,在这里我开始相信我在阅读时需要Nginx或Caddy,但我没有任何经验。 有人可以确认这是解决这个问题的方法吗?我在哪里可以找到重定向到Golang应用程序的任何服务器的配置示例?

而且,将来如果有很多(实际上很多)域在同一台服务器上运行,哪个服务器更好?高负荷谁更好?

1 个答案:

答案 0 :(得分:2)

是的,Nginx可以解决您的问题:

  1. 使用Go或Caddy标准库启动Web服务器。
  2. 使用Nginx将请求重定向到Go应用程序:
  3. 示例Nginx配置:

    server {
        listen 80;
        server_name dev00.mysite.com;
        ...
    
        location / {
            proxy_pass http://localhost:8000;
            ...
        }
    }
    
    server {
        listen 80;
        server_name dev01.mysite.com;
        ...
    
        location / {
            proxy_pass http://localhost:8001;
            ...
        }
    }