使用 Linuxserver 的 Swag 作为 docker compose 中 SpringBoot 应用程序的反向代理



我目前正在尝试让我的SpringBoot应用程序在我的Pi上公开可用,并发现自己处于以下情况:

  • 我已经从DuckDns中保留了一个域,并且已经运行docker映像来更新我的ip。
  • 我有我的spring应用程序运行在一个docker容器:
version: "3"
services:
my-app:
container_name: my-app
image: my-app:latest
restart: unless-stopped
ports:
- "8080:8080"
env_file:
- .env
networks:
- postgres
- swag
networks:
postgres:
external:
name: postgres-network
swag:
external:
name: swag-network
  • 我有Swag运行在docker。它创造了"自负"。在之前的docker-compose中使用的网络。我之所以选择这个工具,是因为它既可以处理使用Let's Encrypt创建证书,又可以设置反向代理。我不确定如果我真的需要这个工具,或者如果它太多。
version: "2.1"
services:
swag:
image: linuxserver/swag:arm64v8-1.32.0
container_name: swag
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
- URL=my-domain.duckdns.org
- SUBDOMAINS=wildcard
- VALIDATION=duckdns
- DUCKDNSTOKEN=my-token
volumes:
- ./config:/config
ports:
- 443:443
restart: unless-stopped
networks:
- swag
networks:
swag:
name: swag-network
  • 最后但并非最不重要的反向代理需要配置在"config/nginx/proxy-confs/my-domain.subdomain.conf">
server {
listen 443 ssl;
server_name my-domain.duckdns.org;
location / {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://my-app:8080;
proxy_redirect off;
}
}

但是我无法使用我的域连接到应用程序。

我的问题:

  • 我是否需要在SpringBoot应用程序中添加一些https特定的配置,或者如果它都在它之外处理。例如,使用端口443,而不是8080
  • 我对代理和公共可用性非常缺乏经验,所以任何提示都将非常感激。
    • 这里的概念正确吗?
    • 执行正确吗?
    • 是否有更聪明/更好的方法来做到这一点?

原来我把代理配置放在了错误的地方。为了全局设置它,我需要把它放在这个文件中:

config/nginx/site-configs/default.conf

相关内容

最新更新