Назад | Перейти на главную страницу

nginx всегда выдает ошибку 500 для файла JS после его изменения

Я запускаю nginx на локальном сервере CentOS 6.3. У меня есть конкретный файл javascript, который загружается на веб-страницу. Если я изменяю файл javascript и обновляю веб-страницу, я всегда получаю ошибку 500. Затем, когда я обновляю его снова, файл JS загружается нормально.

Позже, если я снова изменю файл JS и обновлю браузер, та же ошибка 500. Обновите второй раз, он загружается нормально. Он дает ошибку 500 только при первом обновлении.

Почему это? Вот моя конфигурация сервера:

server {

        listen 80;
        server_name www.mysite.local;

        rewrite ^(.*) http://mysite.local$1 permanent;
}

server {

        listen          80;
        server_name     mysite.local;

        access_log      /var/log/nginx/mysite.local/access.log;
        error_log       /var/log/nginx/mysite.local/error.log;
        rewrite_log     on;

        root            /vhosts/mysite/mysite.local/public;
        index           index.php;

        # Heres my redirect, try normal URI and then our Laravel urls.

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

        include         /etc/nginx/templates/other;

Вот включаемый файл:

if (!-d $request_filename) {
        rewrite ^/(.+)/$ /$1 permanent;
}

location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

location ~ /\.ht {
        deny all;
}

Журнал ошибок:

2014/09/06 23:19:58 [crit] 27884#0: *29935 open() "/vhosts/mysite.local/public/js/testfile.js" failed (11: Resource temporarily unavailable), client: 192.168.1.51, server: mysite.local, request: "GET /js/testfile.js HTTP/1.1", host: "mysite.local", referrer: "http://mysite.local/some/page"

Я единственный, кто подключается к серверу. Другого трафика нет. И не имеет значения, обновляю ли я страницу сразу после сохранения файла или жду (например, 15 секунд или что-то в этом роде). При первом обновлении всегда возникает ошибка 500.

Я открываю / редактирую файлы через соединение Samba.

Это закончилось проблемой с Samba, а не с nginx. Я решил проблему, добавив в конфигурацию Samba следующее:

oplocks = no
level2 oplocks = no

Первоначально найдено в следующем потоке SO: https://stackoverflow.com/questions/10202567/nginx-resource-tempoporary-unavailable-using-a-samba-share