Nginx, Jira пропавшие гаджеты и не загружающиеся CSS и JavaScript
Некоторое время назад я писал о том как настроить Nginx для того чтобы он работал с Jira. В связи с тем что я до последнего времени не очень активно юзал Jira, все работало отлично и проблем никаких не возникало. Однако внезапно проблемы появились, проявлялись эти проблемы в том что перестали подгружаться различные стили и JavaScript файлы, в общем статика разная. Как я понял Jira (или Tomcat) отдает их не напрямую, а через какие то Rewrite итд, возможно потому что содержимое их меняется в зависимости от того что на странице происходит.
Попробовал пооткрывать в разных браузерах, даже с айфона через GPRS, т.к. я уже подумал что это богомерзкий Касперский со своей дебильной защитой заблокировал мне скрипты. Гаджеты не появлялилсь нигде. Покопавшись в логах ничего особенного найти не удалось, кроме того что Nginx не может получить статику от Jira.
"http://127.0.0.1:8080/s/531/2/1.1.5.1/_/download/batch/com.atlassian.gadgets.dashboard:dashboard/com.atlassian.gadgets.dashboard:dashboard.js", host: "jira.XXXX.com", referrer: "http://jira.XXXX.com/secure/Dashboard.jspa" 2010/09/27 22:31:32 [crit] 15402#0: *12016 open() "/var/lib/nginx/proxy/2/05/0000000052" failed (13: Permission denied) while reading upstream, client: 192.168.1.20, server: jira.XXXX.com, request: "GET /secure/admin/jira/JiraSupportRequest!default.jspa HTTP/1.1", upstream: "http://127.0.0.1:8080/secure/admin/jira/JiraSupportRequest!default.jspa", host: "jira.XXXX.com" 2010/09/27 22:34:01 [crit] 15402#0: *12043 open() "/var/lib/nginx/proxy/3/05/0000000053" failed (13: Permission denied) while reading upstream, client: 192.168.1.20, server: jira.XXXX.com, request: "GET /secure/admin/jira/ViewSystemInfo.jspa HTTP/1.1", upstream: "http://127.0.0.1:8080/secure/admin/jira/ViewSystemInfo.jspa", host: "jira.XXXX.com", referrer: "http://jira.XXXX.com/secure/project/ViewProjects.jspa"
Так как у меня еще не кончилась купленная лицензия, то я собрал все логи и скриншоты и написал в саппорт. Через какое то время рассмотрев проблему, мне ответили что не могут помочь т.к. не предоставляют поддержку для сторонних приложений и предложили спросить на их форуме, но дали совет посмотреть разрешения на директорию и кинули ссылку на статью, как оказалось позже полезную. Пока ехал с работы я подумал что скорей всего проблема в том что nginx еще держит в кэше страницы.
Нашел опцию для конфига, которая задает время через которое кэш становится не валидным вставил в свой конфиг и все заработало сразу же, гаджеты появились и все css подгрузились.
Вот полная версия конфига при которой все должно работать нормально.
server {
listen 80;
server_name jira.XXXX.com;
access_log /var/log/nginx/jira-XXXX-com--access.log;
error_log /var/log/nginx/jira-XXXX-com--error.log;
location / {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
port_in_redirect off;
proxy_redirect http://jira.XXXX.com:8080/ /;
proxy_connect_timeout 300;
proxy_cache_valid 200 302 1m;
proxy_cache_valid 404 1m;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/nginx-default;
}
}proxy_cache_valid 200 302 1m; - эту часть думаю можно успешно заменить на 1h (т.е. 1 час), но мне хотелось весь кэш сбросить поэтому поставил одну минуту.
обновление: сейчас опять эта проблема всплыла, я полез смотреть на разрешения на директорию с кэшем (как раз то на что указали в саппорте), почему то они были у меня для www-data, хотя nginx работает под nobody
# ls -lha /var/lib/nginx/proxy/ total 48K drwx------ 12 nobody root 4.0K Feb 12 2009 . drwxr-xr-x 5 root root 4.0K Nov 21 2008 .. drwx------ 34 www-data www-data 4.0K Apr 23 18:36 0 drwx------ 34 www-data www-data 4.0K Mar 11 2010 1 drwx------ 30 www-data www-data 4.0K Jan 23 2010 2 drwx------ 37 www-data www-data 4.0K Jan 7 2010 3 drwx------ 43 www-data www-data 4.0K Apr 23 22:35 4 drwx------ 40 www-data www-data 4.0K Apr 23 21:05 5 drwx------ 37 www-data www-data 4.0K Jan 7 2010 6 drwx------ 37 www-data www-data 4.0K Apr 9 17:16 7 drwx------ 35 www-data www-data 4.0K Apr 25 17:29 8 drwx------ 39 www-data www-data 4.0K Apr 25 17:29 9
и по датам видно что кэш то и не работал ни хрена вообще
в общем вот это окончательно решило проблему:
# chown -R nobody /var/lib/nginx/proxy/*
