我们有一个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脚本?
我已经检查了文档和另一个开发人员,我花了一两个小时尝试各种各样的事情,但收效甚微。
答案 0 :(得分:1)
你不能
您不必使用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/