Chu*_*ckE 3 rack ruby-on-rails unix-socket
我必须修补一些代码,但无法弄清楚具体如何.所以基本上,我有一个机架服务器绑定到主机名和端口.我喜欢它绑定到unix socket.问题是,我无法弄清楚我必须给出的确切选项.
Rack::Server.new(:app => @app, :port => 3000).start
Run Code Online (Sandbox Code Playgroud)
做了什么预期.我以为会是这样的:
Rack::Server.new(:app => @app, :socket => "path/to/file").start
Run Code Online (Sandbox Code Playgroud)
但是这会绑定到默认端口.我怎样才能做到这一点?
我发现如果你将文件名传递给:Host选项它会绑定到unix套接字而不是tcp套接字.
但文件名必须如下所示:
/var/www/myapp/my_app.socket 要么 ./my_app.socket
如果它看起来像这样的域名,这将无效:
my_app.socket
例如,这是一个在Rack 1.2中运行的rackup命令:
rackup -s thin -E production -o ./my_app.socket faye.ru
Run Code Online (Sandbox Code Playgroud)
或者这是你如何从ruby做到的:
require 'rack'
require 'thin'
Rack::Handler.get('thin').run(app, :Host => './my_app.socket')
# or this works also
require 'rack'
require 'thin'
Rack::Server.new(:app => app, :Host => './my_app.socket').start
Run Code Online (Sandbox Code Playgroud)
注意:此处:Host需要大写字母H.
我希望有所帮助!