ruby-on-rails-如何将ImageMagick环境变量传递给nginx mongrels?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了ruby-on-rails-如何将ImageMagick环境变量传递给nginx mongrels?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2559字,纯文字阅读大概需要4分钟。
内容图文
我的Rails应用程序使用ImageMagick,但是该应用程序在尝试执行ImageMagick命令(“ identify”)时失败.我通过在Apache配置中传递以下环境变量来解决开发中的问题(正在运行Apache / Passenger):
SetEnv MAGICK_HOME /opt/local/var/macports/software/ImageMagick/6.5.9-0_0+q16
SetEnv DYLD_LIBRARY_PATH /opt/local/var/macports/software/ImageMagick/6.5.9-0_0+q16/opt/local/lib
SetEnv PATH /usr/bin:/opt/local/var/macports/software/ImageMagick/6.5.9-0_0+q16/opt/local/bin
但是,我的生产环境正在运行Nginx和Mongrel(不是我设置的),并且我不确定如何将这些变量传递给应用程序.我的nginx.conf文件当前如下:
# user and group to run as
user mouthbreather mouthbreather;
worker_processes 4;
# pid of nginx master process
pid /var/run/nginx.pid;
events {
worker_connections 8192;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/engineyard/nginx/access.log main;
error_log /var/log/engineyard/nginx/error.log notice;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_proxied any;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
include /etc/nginx/sites/*.conf;
}
所以我的问题是:
>如何确定MAGICK_HOME在生产中的位置?
>如何通过nginx.conf将这些变量传递给应用程序?
谢谢!
解决方法:
简而言之,您不会使用nginx通过环境变量传递任何内容,而是使用HTTP标头或fastcgi参数.
在您的情况下,您甚至不需要,因为您可以正确地处理事务并将mongrels作为单独的进程运行-在THEIR环境中设置环境变量. Nginx与它无关.
Nginx不能与环境变量一起使用,并且可能不会在很长一段时间内出现,直到有人错误地将其与第三方模块一起破解,然后主流仍不支持该模块.
造成这种情况的原因有很多,主要是与设计,安全性和管理相关,但是最终,开发人员和社区认为,当设计HTTPd来处理可能会占用资源的资源时,处理环境变量不是HTTPd的地方.不在同一台计算机上(如何将环境变量传递给在附近另一台计算机上侦听的进程?).
此外,passenger是第三方模块,在实现和设计方面都受到了破坏,因为它在nginx中运行,因为它在nginx中运行应用程序流程(这是理论上您可以传递环境变量,但这不是nginx的工作方式).
推荐的处理此类情况的方法是在nginx之外启动应用程序(如果需要,在其中使用环境变量),然后将proxy或fastcgi传递给您的应用程序,还可以选择在标头或fastcgi params中包含必要的额外数据.另外,您的应用程序可以通过某种方式确定其中的正确设置,例如settings.local文件(这在python设置中非常常见).
有很多方法可以使nginx不处理环境变量.
内容总结
以上是互联网集市为您收集整理的ruby-on-rails-如何将ImageMagick环境变量传递给nginx mongrels?全部内容,希望文章能够帮你解决ruby-on-rails-如何将ImageMagick环境变量传递给nginx mongrels?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。