Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gateway Timeout #13

Open
Ro4cHii opened this issue Aug 4, 2023 · 0 comments
Open

Gateway Timeout #13

Ro4cHii opened this issue Aug 4, 2023 · 0 comments

Comments

@Ro4cHii
Copy link

Ro4cHii commented Aug 4, 2023

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant