【发布时间】:2021-05-11 06:25:25
【问题描述】:
我在我的 FreeBSD 服务器上成功安装了一个 rails 应用程序,但是当我测试 rails s -e production 或 rails s -e development 时,我在发送请求后从 Puma 服务器收到 Read: #<NameError: uninitialized constant Puma::Server::UNPACK_TCP_STATE_FROM_TCP_INFO>
我在某处错过了一步?
PS。我将 Rails6 与 SqlLite3 一起使用
config/puma.rb
# Puma can serve each request in a thread from an internal thread pool.
# The `threads` method setting takes two numbers: a minimum and maximum.
# Any libraries that use thread pools should be configured to match
# the maximum value specified for Puma. Default is set to 5 threads for minimum
# and maximum; this matches the default thread size of Active Record.
#
max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
threads min_threads_count, max_threads_count
# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
#
port ENV.fetch("PORT") { 3000 }
# Specifies the `environment` that Puma will run in.
#
environment ENV.fetch("RAILS_ENV") { "development" }
# Specifies the `pidfile` that Puma will use.
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
# Specifies the number of `workers` to boot in clustered mode.
# Workers are forked web server processes. If using threads and workers together
# the concurrency of the application would be max `threads` * `workers`.
# Workers do not work on JRuby or Windows (both of which do not support
# processes).
#
# workers ENV.fetch("WEB_CONCURRENCY") { 2 }
# Use the `preload_app!` method when specifying a `workers` number.
# This directive tells Puma to first boot the application and load code
# before forking the application. This takes advantage of Copy On Write
# process behavior so workers use less memory.
#
# preload_app!
# Allow puma to be restarted by `rails restart` command.
plugin :tmp_restart
【问题讨论】:
-
我不是彪马专家。但是,您如何“在浏览器中进行查询”。你在导航栏中输入什么网址?它也可以在开发环境中工作吗?
-
在我从 Puma 获得
Read: #<NameError: uninitialized constant Puma::Server::UNPACK_TCP_STATE_FROM_TCP_INFO>之后,在网址栏浏览器public_ip_server:3000中。 -
只是想知道这是否不是生产设置问题。当您使用
rails s启动 Puma 开发并访问 urllocalhost:3000时,Puma 是否返回错误? -
在开发环境中我什么都没有,我的浏览器返回一个站点不可用错误并且我的 Puma 服务器没有捕获任何请求
-
“Puma 没有收到任何请求”是什么意思?如果这是本地(开发)
localhost:3000足以在本地查询您的应用程序。我怀疑您的生产设置有问题。此外,如果您的生产设置很好,这可能是套接字的问题,如 Puma 源代码中所示:github.com/puma/puma/blob/master/lib/puma/server.rb#L182 有一些关于它的线程
标签: ruby-on-rails ruby puma