Я новичок на nginx сервере и у меня возникли проблемы. Я пытаюсь создать файл stati c, но он работает только в том случае, если я помещаю его в: / var / www/html
Я хочу разместить свой индекс. html в этой папке: / home / bowa / go / go -web / frontend
Это моя конфигурация сервера:
server {
server_name braurl.se www.braurl.se;
root /home/bowa/go/go-web/frontend/;
index.html;
location / {
proxy_pass http://localhost:9990;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/braurl.se/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/braurl.se/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
Это мой golang код для обслуживания файла:
(мой основной. go находится в папке: / home / bowa / go / go -web /)
func rootHandler(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, "/frontend/index.html")
}
Единственный способ, которым мне удается обслуживать индекс. html если я определю нет root в конфигурации моего сервера и если я изменю свой код go следующим образом:
http.ServeFile(w, r, "/var/www/html/index.html")
Это сводит меня с ума, и я был бы рад, если бы кто-то мог указать мне на правильное направление.
Я получил это, работая в localhost, но не на nginx.
func serveFiles(w http.ResponseWriter, r *http.Request) {
fmt.Println(r.URL.Path)
p := "." + r.URL.Path
if p == "./" {
p = "./frontend/index.html"
}
http.ServeFile(w, r, p)
}
func main() {
r := mux.NewRouter()
api := r.PathPrefix("/api/v1").Subrouter()
// index.html
r.HandleFunc("/", serveFiles)
}
Структура: Pi c структуры сервера