Я пытаюсь запустить веб-сервер внутри моего приложения go. Когда я запускаю свой код в Windows, все работает как положено. Приложение запускается, запускает веб-сервер и затем ждет. В Linux это похоже на то же самое, за исключением того, что я не могу получить доступ к веб-серверу.
Если я запускаю веб-сервер без использования программы, сервер работает, только когда я использую программу, она выходит из строя.
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
// go startWebServer() // This only works on Windows.
// startWebServer() // This works on both Windows and Linux.
fmt.Println("Started web server...")
for {}
}
func startWebServer() {
fileServer := http.FileServer(http.Dir("./web"))
http.Handle("/web/", http.StripPrefix("/web/", fileServer))
log.Fatal(http.ListenAndServe(":8101", nil))
}
У меня есть простой файл HTML в моей веб-папке, подойдет любой действительный HTML.
<h1>THIS IS A TEST</h1>
Затем я указываю браузеру на http://127.0.0.1:8101/web/index.html
В Windows я получаю свою страницу независимо от того, какой метод я использую.
В Linux я могу попасть на мою страницу только в том случае, если я НЕ пользуюсь программой.