go - Golang Gorilla mux如何处理不同的端口?
问题描述
我尝试在不同的端口中分离内部使用和外部使用 API。
例如端口 80 中的外部,端口 5487 中的内部。
我使用github.com/gorilla/mux进行 url 路由。
我尝试创建两条不同的路线
func main() {
internal := mux.NewRouter()
external := mux.NewRouter()
internal.HandleFunc("/foo", logging(foo))
internal.HandleFunc("/bar", logging(bar))
external.HandleFunc("/monitor", monitor())
http.ListenAndServe(":80", internal)
http.ListenAndServe(":8080", external)
}
但事实证明,第二台服务器是无法访问的代码。
那么如何在 go 中创建两个不同的端口呢?
谢谢
解决方案
使用 goroutine。
package main
import (
"net/http"
"github.com/gorilla/mux"
)
func main() {
internal := mux.NewRouter()
external := mux.NewRouter()
internal.HandleFunc("/foo", logging(foo))
internal.HandleFunc("/bar", logging(bar))
external.HandleFunc("/monitor", monitor())
go http.ListenAndServe(":80", internal)
go http.ListenAndServe(":8080", external)
select{} // block forever to prevent exiting
}
推荐阅读
- linux - 在 PAM 模块中刷新 printf 语句
- javascript - 如何在 VS 2017 for Mac 中启用 Bower?
- delphi - 有没有办法格式化 TNumberBox.text?
- html - 修改 wordpress 菜单
- javascript - 在控制台日志中看不到对象左侧的数字
- python - 为什么@abstractmethod 装饰器只影响使用常规继承派生的子类?
- mysql - 如何使用从 Squalize 生成的模型获取关联数据?
- java - 在 IntelliJ 中找不到 GsonBuilder 的方法“setLenient”
- azure - 查找 kusto 查询的开始和结束时间(或时间跨度)在 azure log analytics 上运行?
- django - Django REST 和 React 实现模型