nginx响应HTTPS但不响应HTTP

时间:2018-06-22 04:53:06

标签: docker nginx http-status-code-503 nextcloud

我正在使用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不起作用?

1 个答案:

答案 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; 

       [....]
}