Как настроить ngnix + go?

Здравствуйте, нужно задеплоить приложение на golang.
Решил использовать ngnix.
Вот конфиг nginx.conf добавил в 43 строку:
server {
    listen       80;
    server_name  MyDomain.ru;
    location / {
        fastcgi_pass  127.0.0.1:9000;
        include       fastcgi_params;
    }
}

Создал директорию /var/app/current/ и залил туда свое приложения.
Изменил main.go:
func main() {
    l, err := net.Listen("tcp", "127.0.0.1:9000")
    if err != nil {
        return
    }
    http.HandleFunc("/", handler)
    fcgi.Serve(l, nil)
}

Потом делаю билд и запускаю:
go build index.go
./index &
Запуск проходит без ошибок, но по запросу на MyDomain.ru мне отвечает 502 Bad Gateway.
Как решить эту проблему, заранее благодарен!
  • Вопрос задан
  • 611 просмотров
Решения вопроса 1
Просто делайте приложение как обычный http-сервер. Через http.ListenAndServe, например. В nginx делаете так:
server {
    listen       80;
    server_name  MyDomain.ru;
    location / {
        proxy_pass http://127.0.0.1:9000;
        proxy_set_header  X-Real-IP         $remote_addr;
    }
}


X-Real-IP нужен, чтобы ваше приложение видело, какой у пользователя айпишник, ибо к приложению всегда будет обращаться nginx. "X-Real-IP" будет одним из заголовков запроса к приложению.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
taliban
@taliban
php программист
У вас случайно не стоит php-fpm? он обычно занимает 9000 порт. Если не в этом дело, то просто сделайте запрос руками на 9000 порт и посмотрите а действительно ли го запустился и работает нормально?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы