403 Bluebix上的Forbidden~nginx

时间:2015-07-23 08:26:47

标签: ruby-on-rails ruby nginx ibm-cloud

这是我昨天在SO上发布的question的延续。我不确定是否应该提出其他问题,或者只是将其链接到较旧的帖子。

Neways,我一直在尝试将rails上的ruby部署到Bluemix上。经过多次跟踪和错误后,我终于设法推送应用程序并启动它。但是,当我尝试打开网络应用程序时。 Bluemix抛出了一个错误

403 Forbidden
   nginx 

如果我理解正确,这与访问我的RoR应用程序上的某些文件夹的权限有关。如何解决这个问题。在将其推送到bluemix之前我是否必须更改本地应用程序的权限,或者是否有什么要在bluemix上完成?

以下是link

编辑:

这是我在bluemix

上的 ngnix 文件夹中的错误日志
2015/07/23 10:16:39 [error] 37#0: *2 directory index of "/home/vcap/app/public/" is forbidden, client: 75.126.52.20, server: localhost, request: "GET / HTTP/1.1", host: "csw-events.mybluemix.net"
bluemix上的ngnix.conf文件

worker_processes 1;
daemon off;

error_log /home/vcap/app/nginx/logs/error.log;
events { worker_connections 1024; }

http {
  log_format cloudfoundry '$http_x_forwarded_for - $http_referer - [$time_local] "$request" $status $body_bytes_sent';
  access_log /home/vcap/app/nginx/logs/access.log cloudfoundry;
  default_type application/octet-stream;
  include mime.types;
  sendfile on;

  gzip on;
  gzip_disable "msie6";
  gzip_comp_level 6;
  gzip_min_length 1100;
  gzip_buffers 16 8k;
  gzip_proxied any;
  gzip_types text/plain text/css text/js text/xml text/javascript application/javascript application/x-javascript application/json application/xml application/xml+rss;

  tcp_nopush on;
  keepalive_timeout 30;
  port_in_redirect off; # Ensure that redirects don't include the internal container PORT - 61596
  server_tokens off;

  server {
    listen 61596;
    server_name localhost;

    location / {
      root /home/vcap/app/public;
      index index.html index.htm Default.htm;

    }
  }
}

我的本​​地系统上不存在ngix文件夹。它是在我将我的应用程序推送到bluemix时创建的(或者我在这里遗漏了什么?)

2 个答案:

答案 0 :(得分:0)

你不能使用Nginx(静态buildpack来为你的Ruby on Rails应用程序提供服务。你必须使用Ruby buildpack。

答案 1 :(得分:0)

问题是由于两个原因造成的(至少在我的场景中)。

a)未使用正确的构建包。解决了我的问题的是使用CF的这个buildpack

cf push csw-events -b https://github.com/cloudfoundry/ruby-buildpack.git

b)清单文件的敏感性 - Bluemix开始抛出以下错误:

FAILED 
Error reading manifest file: 
yaml: [] control characters are not allowed at line 1, column 1

这是通过再次下载清单文件并仅替换它的特定部分(如命令部分)来解决的。