San*_*lal 0 amazon-ec2 go amazon-web-services
我使用 gin 在 Go 中创建了一个项目,它在本地运行良好。但是,当我尝试在 AWS 上的 EC2 实例上部署它时,我无法访问服务器上的 API。
我在托管机器上执行了 ssh 并给出了 curl 请求 ( curl localhost:8080) 并给出了正确的响应。但是无法访问来自外部的任何请求。
服务器在端口 8080 上运行。我已打开 AWS 安全组中的端口。
是否需要在 Go/gin 中进行任何设置才能从 Internet 访问它?
示例代码:
package main
import (
"myConstants"
"myDatabase"
"myMiddleware"
"onboarding"
"github.com/gin-gonic/gin"
)
func main() {
var db = myDatabase.DBConnect()
router := gin.Default()
router.Use(myMiddleware.RestrictInputContent)
router.Use(myMiddleware.CheckToken(db))
router.Use(myMiddleware.RequestLoggerMiddleware())
router.POST("/signup", onboarding.Signup(db))
router.POST("/login", onboarding.Login(db))
router.POST("/logout", onboarding.Logout(db))
router.GET("/", onboarding.Hello(db))
defer db.Close()
//Listen and serve
router.Run("127.0.0.1:8080")
}
Run Code Online (Sandbox Code Playgroud)
将 router.Run 从 更改router.Run("127.0.0.1:8080")为router.Run(":8080")并且它可以工作。正如@elithrar 和@user3591723 所建议的,127.0.0.1(本地主机)只是机器上的环回接口绑定到“:8080”意味着 0.0.0.0:8080 - 这意味着所有接口
| 归档时间: |
|
| 查看次数: |
557 次 |
| 最近记录: |