nginx защита от hotlink

demonsked nginx-forum на nginx.us
Вс Фев 28 00:34:50 MSK 2010


Установил нгинкс, поставил DLE. Решил обезопаситься от хотлинкинга и чтоб шаблон не сперли, написал конфиг. Не работает защита. Все равно отдает файлы всем. Если прописать root не в секции server,а в локайшен 
location / {
            root   /home/***/www/public_html;
            index  index.html index.htm index.php;
            Реврайты DLE ***

        }
тогда не отдает вообще и ищет файлы в директории по умолчанию
2010/02/27 05:02:36  91714#0: *7 open() "/usr/local/etc/nginx/html/templates/Default/images/dlet_hder18-2.gif" failed (2: No such file or directory), client: 172.16.0.10, server: www.***, request: "GET /templates/Default/images/dlet_hder18-2.gif HTTP/1.1", host: "***", referrer: "http://***/templates/Default/main.tpl"

Если прописать root в локейшен где и проверяется реферер то также отдает все подряд.

server {
        listen       80;
        server_name  www.***.net.ru ***.net.ru;
        root   /home/***/www/public_html;
        #charset windows-1251;

        access_log  logs/sked.access.log  main;
        error_log   logs/sked.error.log;

        location ~ \.(gif|jpg|jpeg|png|js|css|rar|exe|sis|sisx|swf|txt|tpl)$ {
                valid_referers server_names none blocked ~\.google\. images.yandex.ru;
                if ($invalid_referer) {
                return 403;
                }
        }
location / {
            index  index.html index.htm index.php;
            Реврайты DLE ***

        }

        ***

        location /12081986/ {
            alias       /usr/local/www/phpMyAdmin/;
            index       index.php;
            auth_basic  "Private Zone";
            auth_basic_user_file /usr/local/www/phpMyAdmin/.htpasswd;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/local/www/nginx-dist;
        }

        location ~ \.php$ {
            root           /home/***/www/public_html/;
            fastcgi_pass   unix:/tmp/php.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /home/***/www/public_html$fastcgi_script_name;
            include        fastcgi_params;
        }

        location ~ \.(cgi|pl)$ {
            root           /home/***/www/public_html/;
            fastcgi_pass   unix:/tmp/perl-fcgi.sock;
            fastcgi_param  SCRIPT_FILENAME  /home/***/www/public_html$fastcgi_script_name;
            include        fastcgi_params;
        }

        location ~ /.ht {
            deny  all;
        }
}

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,58078,58078#msg-58078




Подробная информация о списке рассылки nginx-ru