我已经用这个脚本运行一个docker容器与下一个云形象(从这里https://hub.docker.com/_/nextcloud/ ):
docker run \ --rm \ --detach \ --publish 54002:80 \ --name cloud.example.com \ --volume /srv/cloud.example.com/:/var/www/html \ nextcloud
server { listen *:80; server_name cloud.example.com; proxy_set_header Host cloud.example.com; location / { rewrite ^(.*)$ https://cloud.example.com$1 permanent; } } server { listen *:443 ssl http2; server_name cloud.example.com; proxy_set_header Host cloud.example.com; set $service_port 54002; set $service_ip 192.168.2.33; ssl_certificate /etc/letsencrypt/live/cloud.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/cloud.example.com/privkey.pem; add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; location / { proxy_pass http://$service_ip:$service_port; } }
我得到502错误代码。 我已经从本地networking检查http:// server_ip:54002 ,它工作正常,也只有代理的HTTP网站也可以! Http Nginx的configuration工作:
server { set $service_port 54002; set $service_ip 192.168.2.33; set $domain_name cloud.example.com; listen *:80; server_name $domain_name; proxy_set_header Host $domain_name; location / { proxy_pass http://$service_ip:$service_port; } }
我的httpsconfiguration有什么问题?
经过这个问题挣扎了好几个小时之后,我终于在服务器configuration中发现了一个错误。 用nginx一切都很好,但是我忘了在ufw中允许443端口。 我错误地认为规则“Nginx的HTTP”是足够的http和https连接,但实际上只有80 / tcp端口是打开的,所以我进入ufw allow 443/tcp和所有的错误消失了! @alexus和其他人原谅我浪费你的时间!