Использование прокси-сервера для переключения между приложениями Golang

У меня есть сервер с CentOS, и там у меня будет работать как минимум 4 приложения Golang, каждое из которых представляет собой отдельный сайт, к которому я должен иметь доступ в браузере с доменом/субдоменами следующим образом:

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

Итак, мне нужно настроить какое-то программное обеспечение, которое перенаправляет запросы на правильный процесс Golang. Каждый сайт будет работать на другом порту, поэтому, например, если кто-то вызовет dev00.mysite.com, я смогу отправить этот запрос процессу сайта dev00 (это для разработки, а не производство). Итак, здесь я начинаю верить, что мне нужен Nginx или Caddy, когда я читаю, но у меня нет опыта ни с одним из них. Может ли кто-нибудь подтвердить, что это способ решить эту проблему? и где я могу найти пример конфигурации любого из этих серверов, перенаправляющих на приложения Golang?

И в будущем, если у вас будет много (действительно много) доменов, работающих на одном сервере, какой из этих серверов лучше? кто лучше с высокой нагрузкой?


person Sredny M Casanova    schedule 10.04.2017    source источник


Ответы (1)


Да, Nginx может решить вашу проблему:

  1. Запустите веб-сервер, используя стандартную библиотеку Go или Caddy.
  2. Перенаправить запрос в приложение Go с помощью 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;
        ...
    }
}
person Laurence    schedule 10.04.2017