问题标签 [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.
node.js - 乘客和 Node.js:有没有办法路由到特定实例?
假设乘客已经启动了您的 node.js 应用程序的许多实例并给出了输出passenger-status --show=xml
,有没有办法卷曲特定实例?
示例输出passenger-status --show=xml
:
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 上运行正常。
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。
我正在使用这种形式的命令来测试:
...并看到以下行为:
当我通过 http 跟踪静态图像时,即http://host.domain.com/images/foo.png,我得到一个 405 响应(如预期的那样)。
当我通过 https 跟踪相同的静态图像时,这意味着它通过配置有乘客的虚拟主机,我得到 405(如预期的那样)。
但是,当我在我们的应用程序中跟踪 Rails 服务时,例如https://host.domain.com/status.json,我得到一个带有有效数据的 200 响应。
我希望 Apache 在它到达乘客/铁路之前关闭请求并返回 405 响应,但这并没有发生。
我错过了什么/误解了什么?
passenger - Phusion Passenger Standalone:监听两个端口?
有没有办法配置 phusion 乘客监听两个端口,将所有流量定向到单个应用程序(多个 node.js 进程)?
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:in
map!' /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:in
specs' /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:in
requested_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:in
setup' /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:in
run_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 只是为了启动和运行而变得如此艰难。
ruby-on-rails - 使用 ActionController::Live 是否需要睡眠?
我按照Rails 参考将一些数据流式传输到客户端。
既然我到处都看到了 Sleep 的使用,那么 Sleep 是否必要?Rails 是否在内部使用 Sleep in Live 来流式传输数据?
docker - 我应该如何根据这个架构 Dockerise 这个 MEAN 堆栈?
我是 Docker 新手。
你能看看我下面附上的方案吗?
计划
我想要的是能够拥有大量隔离的 docker 容器和当前的板载软件:
- NodeJs(npm、pm2、grunt-cli 等)
- 蒙古数据库
- 其他软件(cron、ffmpeg 等)
每个隔离容器都使用应用程序代码链接到同一个卷,但以不同的 ENV 变量开始:expressJS 端口、数据库名称等。你明白了吗?
例如,我们有 2 个独立的容器:stack1
和stack2
.
它们都使用相同的卷,应用代码位于主机的 /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 的最佳实践(每个容器只运行一个进程)
还是有其他合适的方法?你将如何实现这个架构?
先感谢您!
ruby-on-rails - 无法启动 Phusion 乘客看门狗
我正在尝试使用乘客和 Nginx 运行 Rails。Nginx 不会重定向到我的 rails 应用程序,而是转到其默认的 index.html 页面,我收到了这个错误:
无法启动 Phusion Passenger 看门狗,因为它在启动过程中遇到以下错误:无法在实例注册表目录 /tmp 内创建子目录:没有这样的文件或目录 (errno=2) (-1: 未知错误)
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
ruby - 优雅地停止在 apache 上运行的 Phusion Passenger
我有一个在前台运行 apache 的 docker 容器。在停止 docker 容器时,一个 SIGTERM 被发送到所有子进程,在我们的例子中是 apache。
现在,我面临的问题是在接收到 SIGTERM 信号时优雅地关闭 apache。Apache 通常会立即终止当前请求,这是问题的主要原因。不知何故,我需要将 SIGTERM 信号转换为SIGWINCH,这最终会优雅地关闭服务器。
我正在考虑编写某种包装脚本,但不知道如何开始。
在这方面的任何建议将不胜感激!
谢谢。