Как использовать парметры 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 обрабатывать правильно. Спасибо