簡體   English   中英

nginx 不會在 docker 80 以外的端口上偵聽 pgadmin

[英]nginx does not listen to pgadmin on docker on port other than 80

我的服務器上有幾個項目正在運行,我無法使用端口 80。在這個 Docker 中,除了 Pgadmin 之外,一切正常。 無論我如何更改代碼,我都會在 <SERVER_IP>: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

因為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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM