我有一個編譯好的 Go 項目,我想將它部署到 AWS EC2 實例。我只是簡單地上傳應用程序并./application在遠程服務器上運行。在終端中,應用程序正在運行并說他正在收聽localhost:3000.我已經將3000端口添加到安全組。但是,當我嘗試在瀏覽器中使用 訪問它時<public-ip>:3000,無論我是否運行該應用程序,它總是顯示連接被拒絕。我嘗試在本地運行該應用程序,它確實有效。那么是因為我部署不正確嗎?
1 回答

哆啦的時光機
TA貢獻1779條經驗 獲得超6個贊
由于沒有共享代碼,因此很難為您提供幫助。
連接被拒絕的一些原因:
您的應用程序只監聽 localhost:3000
EC2 安全組不暴露端口 3000
怎么修:
大多數應用程序都在配置文件或環境變量上定義主機地址。如果您有權更改它,請將其從 localhost:3000 更改為 0.0.0.0:3000 以接受來自所有 IP 或 your_ec2_public_ip:3000 的連接
如果主機地址是硬編碼的并且您可以訪問代碼,請按照上述更改代碼
如果您無權訪問配置或代碼來更改主機地址,則添加反向代理以將傳入呼叫路由到 localhost:3000。這是關于使用 Nginx 作為反向代理的一個很好的鏈接https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
確保 EC2 安全組允許指定端口的入站連接,在這種情況下,如果您設法將傳入路由到 your_ip:3000,則為 3000
- 1 回答
- 0 關注
- 207 瀏覽
添加回答
舉報
0/150
提交
取消