Ruby on rails my/public目录是否可以是rails 3+;乘客3号&x2B;nginx 0.8?

Ruby 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

我正在构建一个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.rb


因此,我想知道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
    文件
  • 符号链接到已启用的
    站点
  • 重新启动nginx

  • Define“它似乎不喜欢那样的设置”。你正在尝试做的应该是可行的。我刚刚添加了一个更新,其中包含文档中的一些信息——看起来不受支持。这很有效!这是我一点都不知道的事情。我想知道是否有任何副作用需要警惕…似乎低水平的东西最终可能太好而不真实。关于这个还有什么想法吗?mount--bind与hdd或其他存储介质的简单挂载在同一级别上工作,因此它对用户级别是透明的,并且在您的情况下不会产生任何副作用。我注意到我不能在具有这样一个挂载点的目录上执行
    rm-rf
    ,我必须先卸载它。因此,它确实将该步骤添加到了我的部署配方中(这很好)。不要使用
    rm-rf
    -目录正忙于挂载点。使用
    rm-rf/*
    删除目录中的所有内容。只需将其放入/etc/rc.local或类似文件中即可。这就像“重启后启动服务器怎么样?”或“重启后安装网络磁盘怎么样?”——这是服务器配置的一部分,请在初始化脚本中执行!尽管另一个答案对我来说更有价值,但我还是把这一个标记为“正确”,因为这是对我所问问题的一个更字面上正确的回答(这样我就可以“光荣地提及”):