微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nginx不在80以外的端口上在docker上侦听pgadmin

如何解决nginx不在80以外的端口上在docker上侦听pgadmin

我的服务器上正在运行多个项目,我无法使用端口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 env:

[email protected]
PGADMIN_DEFAULT_PASSWORD=password
PGADMIN_LISTEN_PORT=5555

解决方法

由于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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。