我正在使用dockerized Nextcloud,如下所示:https://github.com/nextcloud/docker/tree/master/.examples/docker-compose/with-nginx-proxy-self-signed-ssl/mariadb/fpm
我使用映射到 12345 的端口 80 和映射到 12346 的端口 443 进行设置。当我转到https://mycloud.example.com:12346
时,我收到自签名证书提示,但除此之外一切都很好,我看到了NextCloud Web UI。但是当我转到http://mycloud.example.com:12345
nginx(proxy
容器(时,会给出错误"503服务暂时不可用"。该错误也会显示在proxy
的日志中。
如何诊断问题?为什么HTTPS可以工作,而HTTP不能工作?
你能提供你的docker命令启动nextcloud,或docker-compos文件吗?
诊断与 docker 内容一样:获取当前正在运行的容器的 id
docker ps
然后检查日志
docker logs [id or name of your container]
docker-compose logs [name of your service]
在容器中连接
docker exec -ti [id or name of your container] [bash or ash if alpine based container]
那里阅读了涉及的nginx conf文件。在您的情况下,我检查从 http 到 https 的重定向,很可能如下所示,没有为 https 指定特定端口,因此端口 443,因此不起作用
server {
listen 80;
server_name my.domain.com;
return 301 https://$server_name$request_uri; <======== no port = 443
}
server {
listen 443 ssl;
server_name my.domain.com;
# add Strict-Transport-Security to prevent man in the middle attacks
add_header Strict-Transport-Security "max-age=31536000" always;
[....]
}