问题已解决,see this github issue for solution。这与我的应用程序强制 SSL 有关,而没有安装 SSL 证书。这就是连接被拒绝的原因。此外,Chrome 正在强行将 http
重定向到 https
。
我已经使用 DigitalOcean 的 droplet 在 Dokku 上部署了一个应用程序,但不幸的是我无法访问,我无法从 dokku 外部向我的应用程序发出任何请求。
这是应用程序的服务器日志,应用程序服务器在端口 5000 上运行(我猜是在 docker 容器内?)
2021-01-29T15:54:55.631984450Z app[web.1]: Puma starting in single mode...
2021-01-29T15:54:55.632155110Z app[web.1]: * Version 4.3.5 (ruby 2.7.0-p0), codename: Mysterious Traveller
2021-01-29T15:54:55.632257250Z app[web.1]: * Min threads: 5, max threads: 5
2021-01-29T15:54:55.632416330Z app[web.1]: * Environment: production
2021-01-29T15:54:59.477622282Z app[web.1]: D, [2021-01-29T15:54:59.477398 #10] DEBUG -- : BONSAI_URL not present, proceeding with Elasticsearch defaults.
2021-01-29T15:55:01.789462413Z app[web.1]: * Listening on tcp://0.0.0.0:5000
2021-01-29T15:55:01.790215291Z app[web.1]: Use Ctrl-C to stop
这是我的应用程序端口映射
Proxy enabled: true
Proxy port map: http:80:5000
Proxy type: nginx
这是我的 docker ps -a
输出
root@dokku-ubuntu-s-1vcpu-2gb-sgp1-01:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
29a40b74890a dokku/propertysafe:latest "/start web" 23 minutes ago Up 23 minutes propertysafe.web.1
159102b6127b 2ab94a5f043a "/bin/bash -c 'mkdir…" 23 minutes ago Exited (0) 23 minutes ago naughty_sammet
a2dc93fff2dd dd5cbe9f96db "/bin/bash -c 'mkdir…" 23 minutes ago Exited (0) 23 minutes ago interesting_margulis
5861efa15abf cc49b1d8e228 "/build" 26 minutes ago Exited (0) 24 minutes ago peaceful_napier
e25ce8a7c7e2 9c8964c4fb67 "/bin/bash -c 'cat >…" 26 minutes ago Exited (0) 26 minutes ago dreamy_morse
410dbbc9cc4c b197a493cfba "/bin/bash -c 'mkdir…" 26 minutes ago Exited (0) 26 minutes ago crazy_hodgkin
5555c7890af0 gliderlabs/herokuish:latest "/bin/bash -c 'mkdir…" 26 minutes ago Exited (0) 26 minutes ago eager_meitner
287b083012b6 postgres:11.6 "docker-entrypoint.s…" 2 hours ago Up 2 hours 5432/tcp dokku.postgres.app_db
并且 ufw
防火墙允许 http
流量。
每次我点击 Droplet IP 时,我都会收到连接被拒绝的错误。
答案 0 :(得分:0)
通常如果 Dokku 应用没有响应外部请求,那是因为应用本身不允许外部网络请求。这可以通过运行来检查:
# replace $APP with your app name
curl --include $(dokku network:report --network-web-listeners $APP)
如果命令没有成功并得到预期的响应,那么这就是您的应用程序中的问题。如果它确实成功,那么很可能是外部的东西阻塞了请求。在这种情况下,许多用户最终会在其服务器前安装 Cloudflare 或类似软件,这可能会因配置错误而导致网络问题。
建议跳上 Gliderlabs Slack 以获得对此类问题的更直接支持。