Как использовать парметры mux с nginx

Всем привет. есть сервер на go

package main

import (
    "log"
    "net/http"

    "github.com/gorilla/mux"
)

func main() {
    log.Println(make_server().ListenAndServe())
}

func make_server() *http.Server {
    router := mux.NewRouter()
    router.HandleFunc("/{name}/", handler)
    return &http.Server{
        Handler: router,
        Addr:    ":8282",
    }
}

func handler(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Hello! " + mux.Vars(r)["name"]))
}

И nginx сервер который перенаправляет запросы

server {
        listen 80;
        listen [::]:80;
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
            try_files $uri $uri/ =404;
            proxy_pass http://192.168.1.109:8282;
        }
}

Получаю с такими конфигурациями 404 ошибку от nginx, если пытаюсь зайти на 192.168.1.109/somename/

Если сделать сервер без mux vars-ов, то отрабатывает все нормально. Например это сработает если зайду в 192.168.1.109

package main

import (
    "log"
    "net/http"

    "github.com/gorilla/mux"
)

func main() {
    log.Println(make_server().ListenAndServe())
}

func make_server() *http.Server {
    router := mux.NewRouter()
    router.HandleFunc("/", handler)
    return &http.Server{
        Handler: router,
        Addr:    ":8282",
    }
}

func handler(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Hello!"))
}

Я предполагаю, что нужно добавлять новые location-ы, но немного не понимаю, как именно это делается, ведь mux параметр динамический. Помогите пожалуйста, куда копать, чтобы роуты через nginx обрабатывать правильно. Спасибо


Ответы (0 шт):