问题标签 [phusion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
265 浏览

node.js - 乘客和 Node.js:有没有办法路由到特定实例?

假设乘客已经启动了您的 node.js 应用程序的许多实例并给出了输出passenger-status --show=xml,有没有办法卷曲特定实例?

示例输出passenger-status --show=xml

0 投票
0 回答
165 浏览

ruby-on-rails - Apache 2.18 拒绝 Rails 应用程序(与 Apache 和乘客)

我有一个服务器(ubuntu),它运行一些带有 Apache & Phusion Passenger 的 Rails 应用程序。自从我将 Apache 升级到 2.18 后,每个 Rails 应用程序都停止工作了。服务器总是以 403 状态(禁止)响应,但 public/ 目录不是私有的(我可以通过 http 访问其中的任何 .html、.jpg 等)。在 Apache 的 error.log 中有一些条目,例如:

有人有什么想法吗?

更新:

我设法解决了这个问题,重新安装(清除而不是安装)Apache 2.4 和Passenger(及其所有依赖项)。在 Apache 2.4.18 和 Passenger 5 上运行正常。

0 投票
1 回答
774 浏览

ruby-on-rails - 乘客 + Apache “TraceEnable Off”

我们在 Apache 2.2 (CentOS 6.latest) 和 Rails 3.2 之后使用 Passenger 4.0.59。

在 /etc/httpd/conf/httpd.conf 我们有:

我们在 httpd.conf 中配置了一个虚拟主机,在 /etc/httpd/conf.d/ssl.conf 中配置了第二个虚拟主机,它配置了Passenger。

我正在使用这种形式的命令来测试:

...并看到以下行为:

  1. 当我通过 http 跟踪静态图像时,即http://host.domain.com/images/foo.png,我得到一个 405 响应(如预期的那样)。

  2. 当我通过 https 跟踪相同的静态图像时,这意味着它通过配置有乘客的虚拟主机,我得到 405(如预期的那样)。

  3. 但是,当我在我们的应用程序中跟踪 Rails 服务时,例如https://host.domain.com/status.json,我得到一个带有有效数据的 200 响应。

我希望 Apache 在它到达乘客/铁路之前关闭请求并返回 405 响应,但这并没有发生。

我错过了什么/误解了什么?

0 投票
2 回答
227 浏览

passenger - Phusion Passenger Standalone:监听两个端口?

有没有办法配置 phusion 乘客监听两个端口,将所有流量定向到单个应用程序(多个 node.js 进程)?

0 投票
2 回答
2173 浏览

ruby - Ruby 在任何源中都找不到 mime-types-data-3.2016.0221 (Bundler::GemNotFound)

我试图让 Ruby 启动并运行,但一直遇到这个问题。操作系统:Debian 6 Wheezy Ruby:2.2.1 Rails:4.2.6

创建一个新项目:Rails new Sample1

获取著名的“我们很抱歉页面”,错误页面: 在任何源中找不到 mime-types-data-3.2016.0221 (Bundler::GemNotFound) /var/lib/gems/1.9.1/gems/ bundler-1.11.2/lib/bundler/spec_set.rb:94:in block in materialize' /var/lib/gems/1.9.1/gems/bundler-1.11.2/lib/bundler/spec_set.rb:87:inmap!' /var/lib/gems/1.9.1/gems/bundler-1.11.2/lib/bundler/spec_set.rb:87:in materialize' /var/lib/gems/1.9.1/gems/bundler-1.11.2/lib/bundler/definition.rb:137:inspecs' /var/lib/gems/1.9.1/gems/bundler-1.11.2 /lib/bundler/definition.rb:182:in specs_for' /var/lib/gems/1.9.1/gems/bundler-1.11.2/lib/bundler/definition.rb:171:inrequested_specs' /var/lib/gems/1.9.1/gems/bundler-1.11.2/lib/bundler/environment.rb:18:in requested_specs' /var/lib/gems/1.9.1/gems/bundler-1.11.2/lib/bundler/runtime.rb:13:insetup' /var/lib /gems/1.9.1/gems/bundler-1.11.2/lib/bundler.rb:92:in setup' /var/lib/gems/1.9.1/gems/bundler-1.11.2/lib/bundler/setup.rb:18:in'/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:inrequire' /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in要求' /usr/ lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:430:inactivate_gem' /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:297:in块在 run_load_path_setup_code' /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:435:in running_bundler' /usr/lib/ruby/vendor_ruby/phusion_passenger/loader_shared_helpers.rb:296:inrun_load_path_setup_code' /usr/share/passenger/helper-scripts/rack-preloader.rb:100:in preload_app' /usr/share/passenger/helper-scripts/rack-preloader.rb:156:in' /usr/share/乘客/helper-scripts/rack-preloader.rb:30:in <module:PhusionPassenger>' /usr/share/passenger/helper-scripts/rack-preloader.rb:29:in'

我整天都在努力让这件事顺利进行。我不知道 Ruby 只是为了启动和运行而变得如此艰难。

0 投票
1 回答
62 浏览

ruby-on-rails - 使用 ActionController::Live 是否需要睡眠?

我按照Rails 参考将一些数据流式传输到客户端。

既然我到处都看到了 Sleep 的使用,那么 Sleep 是否必要?Rails 是否在内部使用 Sleep in Live 来流式传输数据?

0 投票
1 回答
324 浏览

docker - 我应该如何根据这个架构 Dockerise 这个 MEAN 堆栈?

我是 Docker 新手。

你能看看我下面附上的方案吗?

计划

我想要的是能够拥有大量隔离的 docker 容器和当前的板载软件:

  • NodeJs(npm、pm2、grunt-cli 等)
  • 蒙古数据库
  • 其他软件(cron、ffmpeg 等)

每个隔离容器都使用应用程序代码链接到同一个卷,但以不同的 ENV 变量开始:expressJS 端口、数据库名称等。你明白了吗?

例如,我们有 2 个独立的容器:stack1stack2.

它们都使用相同的卷,应用代码位于主机的 /home/user/app_code/(卷挂载)。

内部stack1的 NodeJS 在 3001 端口上启动,并连接到它的 mongoDB 服务器,该服务器在 /home/user/db1(卷挂载)使用 DB,并在 /home/user/storage1 有其专用的多媒体存储

内部stack2的 NodeJS 在 3002 端口上启动,并连接到它的 mongoDB 服务器,该服务器在 /home/user/db2(卷挂载)使用 DB,并在 /home/user/storage2 有其专用的多媒体存储

当然stack1还有stack2放在 Nginx 单容器反向代理后面。

问题

实施我的计划的最佳方式是什么?

据我了解,docker-compose在我的情况下,它不是正确的工具。最后,我只能构建包含 nodeJs 图像和 Mongo 图像的堆栈。但是如何处理ffmpeg和cron呢?如何乘以堆栈?是否可以将它们放在单 Nginx 容器后面?

第二种方法是采取“phusion/baseimage-docker”,手动安装NodeJs、Mongodb、ffmpeg,将这个容器相乘,并将每个容器隐藏在Nginx revese代理后面。但是这种方法有点违反编写 Dockerfile 的最佳实践(每个容器只运行一个进程)

还是有其他合适的方法?你将如何实现这个架构?

先感谢您!

拱

0 投票
1 回答
496 浏览

ruby-on-rails - 无法启动 Phusion 乘客看门狗

我正在尝试使用乘客和 Nginx 运行 Rails。Nginx 不会重定向到我的 rails 应用程序,而是转到其默认的 index.html 页面,我收到了这个错误:

无法启动 Phusion Passenger 看门狗,因为它在启动过程中遇到以下错误:无法在实例注册表目录 /tmp 内创建子目录:没有这样的文件或目录 (errno=2) (-1: 未知错误)

0 投票
1 回答
225 浏览

ubuntu - 如何在 baseimage 中运行 nginx-naxsi?

我尝试过 baseimage 0.9.19(Ubuntu 16.04)和 0.9.18(Ubuntu 14.04)。

0.9.18 得到:

0.9.19 得到:

并且编译似乎在 baseimage 中不起作用:
https ://github.com/nbs-system/naxsi/wiki/naxsi-compil

0 投票
1 回答
689 浏览

ruby - 优雅地停止在 apache 上运行的 Phusion Passenger

我有一个在前台运行 apache 的 docker 容器。在停止 docker 容器时,一个 SIGTERM 被发送到所有子进程,在我们的例子中是 apache。

现在,我面临的问题是在接收到 SIGTERM 信号时优雅地关闭 apache。Apache 通常会立即终止当前请求,这是问题的主要原因。不知何故,我需要将 SIGTERM 信号转换为SIGWINCH,这最终会优雅地关闭服务器。

我正在考虑编写某种包装脚本,但不知道如何开始。

在这方面的任何建议将不胜感激!

谢谢。