nginx响应HTTPS,但不响应HTTP



我正在使用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:12345nginx(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; 
[....]
}

最新更新