Score:0

Constant timeouts when conecting from LAN to services behind a reverse proxy

cn flag

years after my first home server died, i've decided to have one again. This time for the sake of learning and having more flexibility i'm doing it with docker containers. The thing is, i've set up a reverse proxy with nginx and the let's ecnrypt companion, to provide SSL encription & to avoid forwarding more ports on my router.

This works pretty much flawlessly, from my phone with mobile data or from a completely different network i can access my services without any issue. The problem comes when I try to acccess fro within the same LAN, i can access 1/10 times nad I get timeouts the other 9/10.

There's no difference in the way i'm trying to connect; in both cases is vía a web browser using <subdomain>.<domain> as a URL

This are my current containers: enter image description here

As for my current docker-compose file, it's like this:

version: '3'
services:
  reverse-proxy:
    image: jwilder/nginx-proxy
    ports:
      - '80:80'
      - '443:443'
    container_name: reverse-proxy
    networks:
      service_network: null
    volumes:
      - '/var/run/docker.sock:/tmp/docker.sock:ro'
      - '.\nginx\certs:/etc/nginx/certs'
      - '.\nginx\vhosts:/etc/nginx/vhost.d'
      - '.\nginx\html:/usr/share/nginx/html'
  ACME-SSL:
    image: jrcs/letsencrypt-nginx-proxy-companion
    depends_on:
      - reverse-proxy
    environment:
      NGINX_PROXY_CONTAINER: reverse-proxy
    networks:
      service_network: null
    volumes:
      - '/var/run/docker.sock:/var/run/docker.sock:ro'
      - '.\nginx\certs:/etc/nginx/certs'
      - '.\nginx\vhosts:/etc/nginx/vhost.d'
      - '.\nginx\html:/usr/share/nginx/html'
  nginx:
    image: nginx
    depends_on:
      - reverse-proxy
    ports:
      - '8080:80'
    expose:
      - 8080
    environment:
      - NGINX_HOST=<DOMAIN>
      - NGINX_PORT=80
      - HTTP_PORT=8080
      - VIRTUAL_HOST=<DOMAIN>
      - LETSENCRYPT_HOST=<DOMAIN>
      - LETSENCRYPT_EMAIL=<EMAIL>
    networks:
      service_network: null
    volumes:
      - '.\<DIRECTORY>:/usr/share/nginx/html'
  koel:
    image: hyzual/koel
    depends_on:
      - reverse-proxy
      - database
    ports:
      - '8000:80'
    expose:
      - 8000
    environment:
      - HTTP_PORT=8000
      - VIRTUAL_HOST=<SUBDOMAIN>.<DOMAIN>
      - LETSENCRYPT_HOST=<SUBDOMAIN>.<DOMAIN>
      - LETSENCRYPT_EMAIL=<EMAIL>
      - DB_CONNECTION=mysql
      - DB_HOST=database
      - DB_USERNAME=koel
      - DB_PASSWORD=<PASS>
      - DB_DATABASE=koel
      - FORCE_HTTPS=true
      - LASTFM_API_KEY=<API_SECRET>
      - LASTFM_API_SECRET=<API_KEY>
    networks:
      service_network: null
      db_network: null
    volumes:
      - '/e/musica:/music'
      - '.\koel\covers:/var/www/html/public/img/covers'
      - '.\koel\search_index:/var/www/html/storage/search-indexes'
  database:
    image: 'mysql/mysql-server:5.7'
    volumes:
      - '.\mysql:/var/lib/mysql'
    environment:
      - MYSQL_ROOT_PASSWORD=<PASS>
      - MYSQL_DATABASE=koel
      - MYSQL_USER=koel
      - MYSQL_PASSWORD=<PASS>
    networks:
      db_network: null
networks:
  service_network:
    driver: bridge
  db_network:
    driver: bridge
 

*I've changed some values to descriptions between < > as they contain private information.

Score:1
br flag

If your domain is mapped to the WAN IP of your router, it could be that the router refuses to send traffic from inside the network back into it.

If that's the case you can rule it out by writing your domain name and the IP of your reverse proxy to /etc/hosts and then testing the connection.

A permanent fix would require you to either run a split DNS or maintaining this hostname to IP mapping in the DNS overrides of your router, if it has such an option.

cn flag
I did change the DNS overrides! But i will try to see if it works locally with the hosts file. If it works i'll recheck my dns configs
cn flag
DNS resolution via the hosts file worked fine, I gotta see why my DNS overrides ain't working but u were right!
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.