我有兩個在本地 Ubuntu 機器上運行的 docker 容器。
第一個是監聽 3010 埠的 nodejs 服務,第二個是 2010 埠上的 nginx 服務器。
我需要處理所有來自 2010 埠(匹配 '/login')的請求并將它們傳遞給第一個容器。
我有 nginx.conf 如下:
server {
listen 2010;
server_name 127.0.0.1;
root /usr/share/nginx/html;
location ^~ /login {
proxy_pass http://127.0.0.1:3010$request_uri;
}
}
我嘗試向郵遞員發出請求,但出現錯誤:
[error] 29#29: *1 connect() failed (111: Connection refused) while connecting to
upstream, client: 172.17.0.1, server: 127.0.0.1, request: "GET /login HTTP/1.1",
upstream: "http://127.0.0.1:3010/login", host: "127.0.0.1:2010"
我在哪里錯了,我做錯了什么?
uj5u.com熱心網友回復:
127.0.0.1指的是 nginx 服務器/容器本身,而不是任何外部服務/容器。
懷疑您在 nginx 容器中運行 Nodejs 行程,因此您需要使用服務名稱參考另一個容器 - https://docs.docker.com/network/bridge/
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/521400.html
標籤:码头工人nginx
