【问题标题】:nginx does not listen to pgadmin on docker on port other than 80nginx 不会在 80 以外的端口上监听 docker 上的 pgadmin
【发布时间】:2020-08-26 07:29:33
【问题描述】:

我的服务器上有几个项目正在运行,我无法使用端口 80。 在这个 Docker 中,除了 Pgadmin 之外,一切正常。无论我如何更改代码,我都会在 :8090/pgadmin/

中收到 502 错误或 404 错误

谁能指导我?

nginx.conf:

upstream app_server {
server gis_app:8095;
}
upstream pg_server {
    server gis_pgadmin:5555;
}

server {
    listen 8090;
    server_name localhost;
    client_max_body_size 200M;

    location / {
        proxy_pass http://app_server;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host:$server_port;
            proxy_redirect off;
    }

    location /static/ {
        alias /srv/gis/static/;
    }

    location /media/ {
        alias /srv/gis/media/;
    }

    location /pgadmin/ {
        proxy_pass http://pg_server;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host;
            proxy_redirect off;
    }
}

docker-compose.yml:

version: '3'

services:
  gis_app:
    container_name: gis_app
    restart: unless-stopped
    build: .
    volumes:
      - .:/srv/gis/src
      - gis_static_volume:/srv/gis/static
      - gis_media_volume:/srv/gis/media
    networks:
      - gis_nginx_network
      - gis_db_network
      - gis_redis_network
    depends_on:
      - gis_db
      - gis_redis

  gis_nginx:
    image: nginx:latest
    container_name: gis_nginx
    restart: unless-stopped
    ports:
      - 8090:8090
    volumes:
      - ./config/nginx:/etc/nginx/conf.d
      - gis_static_volume:/srv/gis/static
      - gis_media_volume:/srv/gis/media
    depends_on:
      - gis_app
    networks:
      - gis_nginx_network

  gis_db:
    image: kartoza/postgis
    container_name: gis_db
    restart: unless-stopped
    env_file:
      - config/.env
    networks:
      - gis_db_network
    volumes:
      - gis_db_volume:/var/lib/postgresql

  gis_pgadmin:
    image: dpage/pgadmin4
    container_name: gis_pgadmin
    depends_on:
      - gis_db
    ports:
    - 5555:8090
    networks:
      - gis_db_network
      - gis_nginx_network
    env_file:
      - config/.env


  gis_redis:
    image: redis
    container_name: gis_redis
    command: >
      --requirepass password
    restart: unless-stopped
    networks:
      - gis_redis_network

networks:
  gis_nginx_network:
    driver: bridge
  gis_db_network:
    driver: bridge
  gis_redis_network:
    driver: bridge

volumes:
  gis_static_volume:
  gis_media_volume:
  gis_db_volume:

和 pgadmin 环境:

PGADMIN_DEFAULT_EMAIL=mail@info.com
PGADMIN_DEFAULT_PASSWORD=password
PGADMIN_LISTEN_PORT=5555

【问题讨论】:

    标签: docker nginx docker-compose devops pgadmin


    【解决方案1】:

    因为PGADMIN_LISTEN_PORT=5555 正在监听端口5555

    所以gis_pgadmin 容器应该监听那个端口5555

    Nginx 将从8090 转发 --> 5555

    gis_pgadmin:
        image: dpage/pgadmin4
        container_name: gis_pgadmin
        depends_on:
          - gis_db
        ports:
        - 5555:5555
    

    【讨论】:

    • 我也尝试了端口 5555:5555、5555:8090、5555:80 和 5,但没有成功。 docker ps : gis_pgadmin /entrypoint.sh Up 443/tcp, 0.0.0.0:5555->5555/tcp, 80/tcp
    • 在主机上,您是否检查了端口 5555 是否有 gis_pgadmin 工作?
    • 使用curl ip_address_of_pgadmin 5555 并检查返回!
    • 在 localhost:5555 上可以工作,但现在可以在服务器上工作,当然我希望它在 ip:8090/pgadmin/ 上运行
    猜你喜欢
    • 2013-04-07
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多