首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当连接到上游时,没有活动的上游

当连接到上游时,没有活动的上游
EN

Server Fault用户
提问于 2022-12-12 17:37:46
回答 1查看 2K关注 0票数 0

我正在尝试使用nginx建立反向代理。事情是,我想重定向到umami登录页面时,转到本地主机。但我得到502坏网关,我不确定我是否正确地配置了nginx。这是我的对接者-Compose.yml,看起来像:

代码语言:javascript
复制
version: '2'
services:
  nginx-proxy:
    image: nginx:latest
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./my_proxy.conf:/etc/nginx/conf.d/default.conf:ro
  umami:
    image: ghcr.io/mikecao/umami:postgresql-latest
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgresql://umami:umami@db:5432/umami
      DATABASE_TYPE: postgresql
      HASH_SALT: 1234567890
    depends_on:
      - db
    restart: always
    networks:
      - nginx-net
  db:
    image: postgres:12-alpine
    environment:
      POSTGRES_DB: umami
      POSTGRES_USER: umami
      POSTGRES_PASSWORD: umami
    volumes:
      - ./sql/schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro
      - umami-db-data:/var/lib/postgresql/data
    restart: always
    networks:
      - nginx-net
volumes:
  umami-db-data:
  conf:
  vhost:
  html:
  dhparam:
  certs:

networks:
  nginx-net:
    external:
      name: nginx-net

这是我在default.conf上安装的default.conf

代码语言:javascript
复制
server {
    listen       80;
    listen       [::]:80;
    server_name  localhost;

    location / {
      proxy_pass http://localhost:3000/login;
      proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
  }
}

这里是我使用过的sql文件夹链接。https://drive.google.com/file/d/1lvyLUve0SGpT1tXlsVoFwPmbmb75n8ER/view?usp=sharing

下面是日志文件的截图。

日志文件

代码语言:javascript
复制
2022/12/13 17:58:09 [notice] 1#1: using the "epoll" event method
2022/12/13 17:58:09 [notice] 1#1: nginx/1.23.2
2022/12/13 17:58:09 [notice] 1#1: built by gcc 10.2.1 20210110 (Debian 10.2.1-6) 
2022/12/13 17:58:09 [notice] 1#1: OS: Linux 5.15.0-56-generic
2022/12/13 17:58:09 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1024:524288
2022/12/13 17:58:09 [notice] 1#1: start worker processes
2022/12/13 17:58:09 [notice] 1#1: start worker process 21
2022/12/13 17:58:09 [notice] 1#1: start worker process 22
2022/12/13 17:58:09 [notice] 1#1: start worker process 23
2022/12/13 17:58:09 [notice] 1#1: start worker process 24
2022/12/13 17:58:09 [notice] 1#1: start worker process 25
2022/12/13 17:58:09 [notice] 1#1: start worker process 26
2022/12/13 17:58:09 [notice] 1#1: start worker process 27
2022/12/13 17:58:09 [notice] 1#1: start worker process 28
2022/12/13 17:58:10 [error] 21#21: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.20.0.1, server: localhost, request: "GET /nginx_status HTTP/1.1", upstream: "http://127.0.0.1:3000/loginnginx_status", host: "172.18.0.1"
2022/12/13 17:58:10 [warn] 21#21: *1 upstream server temporarily disabled while connecting to upstream, client: 172.20.0.1, server: localhost, request: "GET /nginx_status HTTP/1.1", upstream: "http://127.0.0.1:3000/loginnginx_status", host: "172.18.0.1"
2022/12/13 17:58:10 [error] 21#21: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 172.20.0.1, server: localhost, request: "GET /nginx_status HTTP/1.1", upstream: "http://127.0.0.1:3000/loginnginx_status", host: "172.18.0.1"
2022/12/13 17:58:10 [warn] 21#21: *1 upstream server temporarily disabled while connecting to upstream, client: 172.20.0.1, server: localhost, request: "GET /nginx_status HTTP/1.1", upstream: "http://127.0.0.1:3000/loginnginx_status", host: "172.18.0.1"
172.20.0.1 - - [13/Dec/2022:17:58:10 +0000] "GET /nginx_status HTTP/1.1" 502 157 "-" "Go-http-client/1.1" "-"
172.20.0.1 - - [13/Dec/2022:17:58:20 +0000] "GET /nginx_status HTTP/1.1" 502 157 "-" "Go-http-client/1.1" "-"
2022/12/13 17:58:20 [error] 22#22: *4 connect() failed (111: Connection refused) while connecting to upstream, client: 172.20.0.1, server: localhost, request: "GET /nginx_status HTTP/1.1", upstream: "http://127.0.0.1:3000/loginnginx_status", host: "172.18.0.1"
2022/12/13 17:58:20 [warn] 22#22: *4 upstream server temporarily disabled while connecting to upstream, client: 172.20.0.1, server: localhost, request: "GET /nginx_status HTTP/1.1", upstream: "http://127.0.0.1:3000/loginnginx_status", host: "172.18.0.1"
2022/12/13 17:58:20 [error] 22#22: *4 connect() failed (111: Connection refused) while connecting to upstream, client: 172.20.0.1, server: localhost, request: "GET /nginx_status HTTP/1.1", upstream: "http://127.0.0.1:3000/loginnginx_status", host: "172.18.0.1"
2022/12/13 17:58:20 [warn] 22#22: *4 upstream server temporarily disabled while connecting to upstream, client: 172.20.0.1, server: localhost, request: "GET /nginx_status HTTP/1.1", upstream: "http://127.0.0.1:3000/loginnginx_status", host: "172.18.0.1"

建议我怎么纠正这个问题?

EN

回答 1

Server Fault用户

发布于 2022-12-13 10:06:46

每个容器都有自己的网络。通过提供localhost作为后端地址,nginx试图在自己的容器中访问这个端口。您需要提供另一个容器:

代码语言:javascript
复制
proxy_pass http://umami:3000/login;

容器的名称在其他容器中可以作为“主机名”使用,因此不应该有更多的工作要做。

您可以删除端口3000的端口定义,它只需要从容器外部访问端口。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1117848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档