Skip to content

Gateway Timeout #13

@Ro4cHii

Description

@Ro4cHii

Hey there,

I followed the tutorial and everything seemed to work out quite well except for the part that I cannot access the site and it's simply giving me a Gateway Timeout when I try to access the configured subdomain.

Please note that I do not have local access to the mydomain.com server so testing via localhost:5001 is not possible for me.
However, this kind of subdomain-to-service configuration via labels is definitely working for several other containers.

docker-compose.prod.yaml

version: '3.3'

services:
  nginx-csc:
    build: ./nginx
    container_name: prod_nginx
    volumes:
      - static_volume:/home/app/web/project/static
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.nginx-csc.entrypoints=http"
      - "traefik.http.routers.nginx-csc.rule=Host(`test.mydomain.com`)"
      - "traefik.http.routers.nginx-csc-secure.entrypoints=https"
      - "traefik.http.routers.nginx-csc-secure.rule=Host(`test.mydomain.com`)"
      - "traefik.http.routers.nginx-csc-secure.tls=true"
      - "traefik.http.routers.nginx-csc-secure.tls.certresolver=http"
      - "traefik.http.routers.nginx-csc-secure.service=nginx-csc"
      - "traefik.http.routers.nginx-csc-secure.middlewares=secHeaders@file,httpsRedirect@file"
      - "traefik.http.services.nginx-csc.loadbalancer.server.port=80"
    depends_on:
      - web
  web:
    build:
      context: ./web
      dockerfile: Dockerfile.prod
    container_name: prod_web
    command: gunicorn --bind 0.0.0.0:5000 manage:app
    env_file:
      - ./.env.prod
    depends_on:
      - db
  db:
    image: postgres:13
    container_name: prod_db
    volumes:
      - postgres_data_prod:/var/lib/postgresql/data/
    env_file:
      - ./.env.prod.db

volumes:
  postgres_data_prod:
  static_volume:

nginx.conf

upstream hello_flask {
    server web:5000;
}

server {

    listen 80;

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

    location /static/ {
        alias /home/app/web/project/static/;
    }

}

I start the stack via docker-compose -f docker-compose.prod.yaml up -d --build.

According to the log files, everything is running without problem:

web service

Waiting for postgres...
PostgreSQL started
[2023-08-04 16:02:55 +0000] [1] [INFO] Starting gunicorn 20.1.0
[2023-08-04 16:02:55 +0000] [1] [INFO] Listening at: http://0.0.0.0:5000 (1)
[2023-08-04 16:02:55 +0000] [1] [INFO] Using worker: sync
[2023-08-04 16:02:55 +0000] [49] [INFO] Booting worker with pid: 49

db service

2023-08-04 16:02:51.294 UTC [1] LOG:  starting PostgreSQL 13.11 (Debian 13.11-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
2023-08-04 16:02:51.300 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
2023-08-04 16:02:51.302 UTC [1] LOG:  listening on IPv6 address "::", port 5432
2023-08-04 16:02:51.305 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2023-08-04 16:02:51.319 UTC [61] LOG:  database system was shut down at 2023-08-04 16:02:51 UTC
2023-08-04 16:02:51.882 UTC [1] LOG:  database system is ready to accept connections

nginx service

/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf is not a file or does not exist
/docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2023/08/04 16:02:53 [notice] 1#1: using the "epoll" event method
2023/08/04 16:02:53 [notice] 1#1: nginx/1.25.1
2023/08/04 16:02:53 [notice] 1#1: built by gcc 12.2.0 (Debian 12.2.0-14) 
2023/08/04 16:02:53 [notice] 1#1: OS: Linux 5.4.0-155-generic
2023/08/04 16:02:53 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2023/08/04 16:02:53 [notice] 1#1: start worker processes
2023/08/04 16:02:53 [notice] 1#1: start worker process 19

I don't even get a HTTP status code, just a Gateway Timeout. Does anybody have an idea why?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions