我已身陷深水
我用 Rust 制作了一个 API,与 postgres 数据库和 portainer docker 容器一起部署在 ubuntu 服务器上的 Docker 容器上。 使用浏览器连接 postgres 数据库或 portainer 并连接到数据库没有问题。
但是,我似乎不知道如何打开以便连接到 Rust API。我已将端口公开为 8080:8080。 我无法在终端中使用curl进行本地连接,然后使用get请求,也无法按照目标进行外部连接。
我正在使用以下方式运行容器:
docker run --publish 80:8080 rust_api
使用
curl --request GET https://127.0.0.1:8080/test
它应该返回一个简单的“确定”和“嘿我还在这里”消息。
但我却得到了
curl: (35) error:0A000126:SSL routines::unexpected eof while reading
外部连接我得到一个
ERR_CONNECTION_REFUSED
,这是问题的第二部分。我尝试使用 sudo ufw allow 8080
打开端口,但这似乎不起作用。
所以基本上我需要帮助,为什么我什至无法从服务器内部调用 API,其次我如何才能使用服务器 IP 在外部调用它。
根据 Hans Kilian 的解决方案,通过在 Rust 程序中绑定到 0.0.0.0 而不是 127.0.0.1 来解决。