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

Nginx 使用代理服务器在Golang应用程序之间切换,nginx,go,caddy,Nginx,Go,Caddy,我有一台装有CentOS的服务器,在那里我将运行至少4个Golang应用程序,其中每一个都是不同的站点,我应该能够通过以下域/子域在浏览器中访问它们: dev00.mysite.com dev01.mysite.com dev02.mysite.com dev03.mysite.com 因此,我需要配置某种软件,将请求重定向到正确的Golang进程。每个站点将在不同的端口中运行,因此,例如,如果有人调用dev00.mysite.com,我应该能够将该请求发送到dev00站点的进程(这是用于开

我有一台装有CentOS的服务器,在那里我将运行至少4个Golang应用程序,其中每一个都是不同的站点,我应该能够通过以下域/子域在浏览器中访问它们:

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


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

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

  • 使用Go或Caddy的标准库启动web服务器
  • 使用Nginx重定向请求转到应用程序:
  • 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;
            ...
        }
    }
    

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

  • 使用Go或Caddy的标准库启动web服务器
  • 使用Nginx重定向请求转到应用程序:
  • 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;
            ...
        }
    }