我正在使用dockerized Nextcloud,如下所示:https://github.com/nextcloud/docker/tree/master/.examples/docker-compose/with-nginx-proxy-self-signed-ssl/mariadb/fpm
我通过将端口80映射到12345并将端口443映射到12346进行了设置。当我转到https://mycloud.example.com:12346
时,我得到了自签名证书提示,但是一切正常,我可以看到NextCloud网站用户界面。但是,当我转到http://mycloud.example.com:12345
时,nginx(proxy
容器)给出了错误“ 503服务暂时不可用”。该错误还会显示在proxy
的日志中。
如何诊断问题?为什么HTTPS有效,但HTTP不起作用?
答案 0 :(得分:1)
能否提供从nextcloud或docker-compose文件开始的docker命令?
对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;
[....]
}