หลายปีหลังจากโฮมเซิร์ฟเวอร์เครื่องแรกของฉันเสียชีวิต ฉันตัดสินใจมีเซิร์ฟเวอร์ใหม่อีกครั้ง ครั้งนี้เพื่อการเรียนรู้และมีความยืดหยุ่นมากขึ้น ฉันใช้ docker container
ประเด็นคือ ฉันได้ตั้งค่า reverse proxy ด้วย nginx และ the Let's ecnrypt Companion เพื่อให้การเข้ารหัส SSL & เพื่อหลีกเลี่ยงการส่งต่อพอร์ตเพิ่มเติมบนเราเตอร์ของฉัน
มันทำงานได้ค่อนข้างไม่มีที่ติ จากโทรศัพท์ของฉันที่มีข้อมูลมือถือหรือจากเครือข่ายที่แตกต่างกันโดยสิ้นเชิง ฉันสามารถเข้าถึงบริการของฉันได้โดยไม่มีปัญหาใดๆ ปัญหาเกิดขึ้นเมื่อฉันพยายามเข้าถึงภายใน LAN เดียวกัน ฉันสามารถเข้าถึงได้ 1/10 ครั้งและหมดเวลาอีก 9/10
ไม่มีความแตกต่างในวิธีที่ฉันพยายามเชื่อมต่อ ในทั้งสองกรณีเป็นเว็บเบราว์เซอร์ที่ใช้ <subdomain>.<domain> เป็น URL
นี่คือคอนเทนเนอร์ปัจจุบันของฉัน: 
สำหรับไฟล์นักเทียบท่าปัจจุบันของฉันมันเป็นดังนี้:
รุ่น: '3'
บริการ:
  พร็อกซีย้อนกลับ:
    รูปภาพ: jwilder/nginx-proxy
    พอร์ต:
      - '80:80'
      - '443:443'
    container_name: พร็อกซีย้อนกลับ
    เครือข่าย:
      service_network: เป็นโมฆะ
    ปริมาณ:
      - '/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:
    รูปภาพ: jrcs/letsencrypt-nginx-proxy-companion
    ขึ้นอยู่กับ:
      - พร็อกซีย้อนกลับ
    สิ่งแวดล้อม:
      NGINX_PROXY_CONTAINER: พร็อกซีย้อนกลับ
    เครือข่าย:
      service_network: เป็นโมฆะ
    ปริมาณ:
      - '/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
    ขึ้นอยู่กับ:
      - พร็อกซีย้อนกลับ
    พอร์ต:
      - '8080:80'
    เปิดเผย:
      - 8080
    สิ่งแวดล้อม:
      - NGINX_HOST=<โดเมน>
      - NGINX_PORT=80
      - HTTP_PORT=8080
      - VIRTUAL_HOST=<โดเมน>
      - LETSENCRYPT_HOST=<โดเมน>
      - LETSENCRYPT_EMAIL=<EMAIL>
    เครือข่าย:
      service_network: เป็นโมฆะ
    ปริมาณ:
      - '.\<ไดเรกทอรี>:/usr/share/nginx/html'
  คูล:
    ภาพ: hyzual/koel
    ขึ้นอยู่กับ:
      - พร็อกซีย้อนกลับ
      - ฐานข้อมูล
    พอร์ต:
      - '8000:80'
    เปิดเผย:
      - 8000
    สิ่งแวดล้อม:
      - HTTP_PORT=8000
      - VIRTUAL_HOST=<SUBDOMAIN>.<DOMAIN>
      - LETSENCRYPT_HOST=<SUBDOMAIN>.<DOMAIN>
      - LETSENCRYPT_EMAIL=<EMAIL>
      - DB_CONNECTION=mysql
      - DB_HOST=ฐานข้อมูล
      - DB_USERNAME=โคเอล
      - DB_PASSWORD=<รหัสผ่าน>
      - DB_DATABASE=โคเอล
      - FORCE_HTTPS=จริง
      - LASTFM_API_KEY=<API_SECRET>
      - LASTFM_API_SECRET=<API_KEY>
    เครือข่าย:
      service_network: เป็นโมฆะ
      db_network: เป็นโมฆะ
    ปริมาณ:
      - '/e/musica:/เพลง'
      - '.\koel\covers:/var/www/html/public/img/covers'
      - '.\koel\search_index:/var/www/html/storage/search-indexes'
  ฐานข้อมูล:
    รูปภาพ: 'mysql/mysql-server:5.7'
    ปริมาณ:
      - '.\mysql:/var/lib/mysql'
    สิ่งแวดล้อม:
      - MYSQL_ROOT_PASSWORD=<รหัสผ่าน>
      - MYSQL_DATABASE=โคเอล
      - MYSQL_USER=โคเอล
      - MYSQL_PASSWORD=<รหัสผ่าน>
    เครือข่าย:
      db_network: เป็นโมฆะ
เครือข่าย:
  บริการ_เครือข่าย:
    คนขับ: สะพาน
  db_network:
    คนขับ: สะพาน
 
* ฉันได้เปลี่ยนค่าบางค่าเป็นคำอธิบายระหว่าง < > เนื่องจากมีข้อมูลส่วนตัว