Ich benutze Nginx + Unicorn mit meiner Rails 3.0.3 App.Anfrage Image 403/404
Hier ist meine nginx Config für die App:
upstream unicorn {
server unix:/tmp/unicorn.myapp.sock fail_timeout=0;
}
server {
listen 80 default deferred;
root /home/deployer/apps/myapp/current/public;
try_files $uri/index.html $uri @unicorn;
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
Hier ist die Verzeichnisliste der App public/images
:
lrwxrwxrwx 1 deployer admin 56 2012-03-28 17:06 other -> /home/deployer/other_images/
-rw-rw-r-- 1 deployer admin 6646 2012-03-28 17:08 rails.png
Wie Sie other
ist ein symbolischer Link zu sehen. Hier ist die Verzeichnisliste für /home/deployer/other_images/
-rw-r--r-- 1 deployer admin 2271 2012-02-03 17:24 1.jpg
im Browser kann ich bis http://<domain>/images/rails.png
ziehen aber http://<domain>/images/other/1.jpg
kehrt die public/404.html
Seite („Die Seite, die Sie suchen existiert nicht“).
Was mache ich falsch? Ist es ein Berechtigungsproblem mit einer der Dateien/Verzeichnisse? Ist meine Nginx-Konfiguration nicht korrekt eingerichtet?
UPDATE
Als ich folgendes für die nginx Config-App hinzufügen (unterhalb der root
), und fordern Sie die 1.jpg
, bekomme ich wieder eine 403 Zugriff verweigert:
location ^~ /images/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}