編輯:我的目標是同時運行多個Go HTTP Server。我在使用Nginx反向代理時訪問運行在多個端口上的Go HTTP服務器時遇到了一些問題。如何同時運行多個Go lang http服務器並使用命令行測試它們?
最後,這是我用來運行多個服務器的代碼。
package main
import (
"net/http"
"fmt"
"log"
)
func main() {
// Show on console the application stated
log.Println("Server started on: http://localhost:9000")
main_server := http.NewServeMux()
//Creating sub-domain
server1 := http.NewServeMux()
server1.HandleFunc("/", server1func)
server2 := http.NewServeMux()
server2.HandleFunc("/", server2func)
//Running First Server
go func() {
log.Println("Server started on: http://localhost:9001")
http.ListenAndServe("localhost:9001", server1)
}()
//Running Second Server
go func() {
log.Println("Server started on: http://localhost:9002")
http.ListenAndServe("localhost:9002", server2)
}()
//Running Main Server
http.ListenAndServe("localhost:9000", main_server)
}
func server1func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Running First Server")
}
func server2func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Running Second Server")
}
很少有新手的錯誤,我做:
- 平http://localhost:9000 - 如前所述,中國平安用於主機不是一個網絡地址。改爲使用wget http://localhost:9000。感謝其他人修正它。
- 在服務器上運行應用程序時結束SSH會話 - 關閉會話後,它也會關閉應用程序。
- 。按Ctrl + Z的 - 如果你正在使用一個終端窗口,你會使用Ctrl + Z,則暫停程序,並在訪問服務器
我希望它會幫助你將面對的問題新手Go lang程序員喜歡我。
它不是主機名'http://127.0.0.1:8090'。它是URL。你可以在這種情況下執行'ping localhost',這是非常無用的。最好嘗試像'wget http://127.0.0.1:8090'' –
請儘可能地發佈文字而不是圖像。 – gavv