Ruby on rails my/public目录是否可以是rails 3+;乘客3号&x2B;nginx 0.8?
我正在构建一个rails部署,其中公共目录是 符号链接到系统上的另一个目录。这是3号乘客的座位 nginx.8。它似乎不喜欢这种设置。Nginx在默认情况下始终遵循符号链接,因此,看来这不是一个与Apache的+FollowSymLinks等效的问题 更新 看起来这里已经讨论过了: 请注意,Nginx的Phusion乘客 不解析中的任何符号链接 根路径。例如,假设 你的根指向 /home/www/example.com,依次 是指向的符号链接 /webapps/example.com/public。普西翁 前往Nginx的乘客将检查 /home/www/config/environment.rb,而不是 /webapps/example.com/config/environment.rb。 这个文件当然不存在,而且 因此,Phusion乘客不会 为此虚拟主机激活自身, 您很可能会看到一些输出 由Nginx默认值生成 目录处理程序,如禁止的 错误消息 发生机架应用程序检测 通过相同的机制,异常 那个乘客会去找的 config.ru而不是 config/environment.rbRuby on rails my/public目录是否可以是rails 3+;乘客3号&x2B;nginx 0.8?,ruby-on-rails,nginx,passenger,Ruby On Rails,Nginx,Passenger,我正在构建一个rails部署,其中公共目录是 符号链接到系统上的另一个目录。这是3号乘客的座位 nginx.8。它似乎不喜欢这种设置。Nginx在默认情况下始终遵循符号链接,因此,看来这不是一个与Apache的+FollowSymLinks等效的问题 更新 看起来这里已经讨论过了: 请注意,Nginx的Phusion乘客 不解析中的任何符号链接 根路径。例如,假设 你的根指向 /home/www/example.com,依次 是指向的符号链接 /webapps/example.com/publi
因此,我想知道config.ru的一些适当的符号链接是否会起作用。我认为不可能使用符号链接的公共目录。我能想到的唯一解决办法是将public dir中的任何文件和目录进行符号链接
# public folder: /data/public
# app folder: /webapp/
mkdir -p /webapp/public && ln -sf /data/public/* /webapp/public/
对于/data/public中的每个新文件或目录,您必须再次运行此命令。您不能使用以下命令:
mount --bind /original_path /your_ngnix_root_path
而不是使用符号链接?对于ngnix,它将是一个普通目录,为什么它会指向您希望的另一个目录。我可以通过下面链接的指南来实现这一点
/var/www/html
默认值
/etc/nginx/nginx.conf
文件站点
Define“它似乎不喜欢那样的设置”。你正在尝试做的应该是可行的。我刚刚添加了一个更新,其中包含文档中的一些信息——看起来不受支持。这很有效!这是我一点都不知道的事情。我想知道是否有任何副作用需要警惕…似乎低水平的东西最终可能太好而不真实。关于这个还有什么想法吗?mount--bind与hdd或其他存储介质的简单挂载在同一级别上工作,因此它对用户级别是透明的,并且在您的情况下不会产生任何副作用。我注意到我不能在具有这样一个挂载点的目录上执行
rm-rf
,我必须先卸载它。因此,它确实将该步骤添加到了我的部署配方中(这很好)。不要使用rm-rf
-目录正忙于挂载点。使用rm-rf/*
删除目录中的所有内容。只需将其放入/etc/rc.local或类似文件中即可。这就像“重启后启动服务器怎么样?”或“重启后安装网络磁盘怎么样?”——这是服务器配置的一部分,请在初始化脚本中执行!尽管另一个答案对我来说更有价值,但我还是把这一个标记为“正确”,因为这是对我所问问题的一个更字面上正确的回答(这样我就可以“光荣地提及”):