【问题标题】:Nginx, Rails, and Unicorn - 404 File not FoundNginx、Rails 和 Unicorn - 404 文件未找到
【发布时间】:2016-02-18 03:18:55
【问题描述】:

每当我尝试访问 Rails 应用程序时,我都会在 /var/log/nginx/error.log 中看到默认的 Nginx 404 页面和以下错误:

2015/11/16 21:45:30 [error] 16240#0: *78 open() "/usr/local/apps/careers_api/current/public/application/test_aggregate.json" failed (2: No such file or directory), client: 70.184.87.69, server: careers-api.dynamynd.com, request: "GET /application/test_aggregate.json HTTP/1.1", host: "careers-api.dynamynd.com"

nginx.conf:

upstream api_server {
    server unix:/run/unicorn/unicorn-api.sock fail_timeout=0;
}

server {
    listen 443 ssl;

    server_name  abc.xyz.com;
    root /usr/local/apps/abc_xyz/current/public;

    ssl on;
    ssl_certificate /etc/ssl/certs/ssl-bundle.crt;
    ssl_certificate_key /etc/ssl/private/STAR_xyz_com.key;
    ssl_prefer_server_ciphers on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4;

    location @app {
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_redirect off;
        proxy_pass http://api_server;
    }
}

我在同一台机器上运行的其他应用程序的配置几乎相同,而且它们运行良好。

【问题讨论】:

  • 我喜欢 SO 如何应用任何语法突出显示它可以(例如本地、公共和私有是蓝色的,大写的单词是蓝色的,// 和 # 是 cmets,数字是红色的,... .)

标签: ruby-on-rails nginx http-status-code-404 unicorn


【解决方案1】:

location @app 是一个命名位置。它只能从另一个位置块间接调用。您有一个隐含的 location / 块,但它不包含调用上游服务的命令。

因此,除非该文件是位于 /usr/local/apps/abc_xyz/current/public/application/test_aggregate.json 的本地静态文件,否​​则您将收到 404 错误。

也许你错过了类似的东西:

location / {
  try_files $uri $uri/ @app;
}

try_files $uri @app;

在服务器块中。

【讨论】:

  • 宾果游戏!谢谢!有一个赞成和一个漂亮的绿色复选标记:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
  • 2015-11-17
  • 1970-01-01
  • 1970-01-01
  • 2016-06-23
相关资源
最近更新 更多