【发布时间】:2022-11-28 05:08:39
【问题描述】:
我有几个在 Docker 容器中运行的服务,都在 Nginx 反向代理之后(使用nginx-proxy/nginx-proxy)。所有服务都在不同的子域上运行,并且它们都可以使用 HTTPS 等正常工作。
我现在正在尝试托管另一个容器,该容器使用 Nginx 在域本身上为静态网站提供服务,没有子域,但我正在努力让它工作。
这是我的最小docker-compose.yml:
version: "3"
services:
example:
image: nginx
expose:
- 80
- 443
restart: unless-stopped
environment:
VIRTUAL_HOST: domain.tld
LETSENCRYPT_HOST: domain.tld
container_name: example
volumes:
- ./content:/usr/share/nginx/html
networks:
default:
external:
name: nginx-proxy
这不起作用:无论我尝试通过 HTTP 还是 HTTPS 访问它,它都会显示 500 Internal Server Error。如果我做完全相同的事情,但将 subdomain.domain.tld 用于 VIRTUAL_HOST 和 LETSENCRYPT_HOST 环境变量,则两者都可以正常工作。
如果我将以下内容添加到 docker-compose.yml 文件中:
ports:
- "8003:80"
- "8443:443"
...然后我可以访问位于http://domain.tld:8003 的站点,但是https://domain.tld:8443 显示连接失败并且https://domain.tld 仍然显示 500 错误。 http://domain.tld 重定向到 https://domain.tld。
【问题讨论】:
标签: nginx docker-compose nginx-reverse-proxy jwilder-nginx-proxy