使用Passenger将命令行参数传递给Nginx中的Rack-App

时间:2014-07-16 14:51:16

标签: ruby nginx passenger rack

我们有一个Sinatra / Rack应用程序。我们正在使用安装了Passenger模块的Nginx,而且正在由Passenger实例化Sinatra / Rack应用程序(我希望我的所有动词都在这里更正)。

我的Rack应用程序的配置以命令行参数的形式出现(例如mqhost=localhost mqport=5672 mquser=foo mqpass=bar)。这些可以通过ENV['mqhost']在Rack应用程序中访问。

所有这些参数也被设置为环境变量,例如$MQHOST$MQPORT

Q1 :如何让Passenger在实例化时将这些命令行参数传递给Rack应用程序?
Q2 :如果我不能将这些作为命令行参数传递,有没有办法可以强制Passenger调用设置这些环境变量的bash脚本?

我已经检查了文档和另一个开发人员,我花了一两个小时尝试各种各样的事情,但收效甚微。

1 个答案:

答案 0 :(得分:1)

  1. 你不能

  2. 您不必使用bash脚本。只需使用passenger_set_cgi_param直接设置即可。手册中有关于环境变量的整章:https://www.phusionpassenger.com/documentation/Users%20guide%20Nginx.html#about_environment_variables

    但如果您真的想从bash脚本中执行此操作,请尝试使用包装脚本方法:http://blog.phusion.nl/2008/12/16/passing-environment-variables-to-ruby-from-phusion-passenger/