如何在使用dokku部署的rails应用程序上启动faye服务器?

我使用Dokku在Digitalocean上托管了我的rails应用程序。 我的应用程序需要通过Faye运行实时应用程序。 我一直在尝试几种方式,如Dokku的shoreman插件,并添加faye: bundle exec rackup faye.ru -s thin -E production到“Procfile”文件。 但是直到现在还没有运气,需要帮助我如何让这个Faye服务器运行我的应用程序。

您需要执行几个步骤才能使用faye服务器(例如,在端口9292上):

  1. 你的Procfile没问题
  2. 在Docker上公开端口9292。 我建议安装dokku docker-options:add timer "-p 9292:9292" docker-options插件和下一个dokku docker-options:add timer "-p 9292:9292"
  3. 设置您的应用程序nginx.conf。 我在这里:

     upstream app { server 127.0.0.1:49154; } server { listen [::]:80; listen 80; server_name app.dokku.mine; location / { proxy_pass http://app; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Request-Start $msec; } location /faye { proxy_redirect off; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; proxy_buffering off; proxy_cache_bypass $http_pragma $http_authorization; proxy_no_cache $http_pragma $http_authorization; proxy_pass http://localhost:9292; } } 

我建议安装nginx-alt插件,因为在每次部署时都会覆盖config。