ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Защита картинок о т прямого скачивания



Igor Sysoev пишет:
On Wed, Oct 21, 2009 at 04:09:35PM +0400, Евгений Осипов wrote:

  
ОС: Windows Server
NGINX Fronted
Apache BackEnd

Имеется следующий конфиг:

    worker_processes  1;
    error_log  D:/Server/Nginx/logs/error.log;

    events {
        accept_mutex  off;
        }


    http {
        include       mime.types;
        default_type  application/octet-stream;

        log_format main '$remote_addr - $remote_user [$time_local]
    $request '
            '"$status" $body_bytes_sent "$http_referer" '
            '"$http_user_agent" "$http_x_forwarded_for"';

        sendfile        on;
        keepalive_timeout 0;

        gzip  on;
        gzip_min_length 1100;
        gzip_buffers 64 8k;
        gzip_comp_level 3;
        gzip_http_version 1.1;
        gzip_proxied any;
        gzip_types text/plain application/xml application/x-_javascript_
    text/css;


        server {
            listen       80;
            server_name  tvorite.ru www.tvorite.ru;
            #access_log off;
            #error_log off;
            access_log  D:/Server/Nginx/logs/access_tvorite.log;
            error_log  D:/Server/Nginx/logs/error_tvorite.log;

        # Main location
            location / {
            root   D:/Server/Apache/htdocs;
            index  index.php;
            client_max_body_size  200M;
            client_body_buffer_size    16k;
            proxy_pass http://127.0.0.1:81;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }

            # Static files location
            location ~*
    ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$
    {
            root   D:/Server/Apache/htdocs;
            expires      30d;
            }

        }

Когда добавляю следующую строчку в конфиг:

    location ~ \.(jpg|gif|png)$ {
        valid_referers none blocked server_names ~\.google\. images.yandex.ru;
	if ($invalid_referer) {
	    rewrite ^(.*)$ /img/invalid_referer.png redirect;
	}
    }

изображения вообще пропадают.

Что я делаю не так?
    

   root   D:/Server/Apache/htdocs;
можно вынести на на уровень сервера или добавить в
"location ~ \.(jpg|gif|png)$".

Из
     location ~* ^.+\.(jpg|jpeg|gif|png|...
нужно убрать "jpg|gif|png".


  
Заметил что это помогло.
Картинки на других сайтах перестали показываться, то нужно изображение по появляется.
Используется этот конфиг:
        location ~ \.(bmp|jpg|jpeg|gif|png)$ {
            root  html/htdocs;
            access_log   off;
            expires      30d;
            valid_referers none blocked server_names forum.21region.org foto.21region.org ~\.google\. images.yandex.ru doskapozora.ru;
            if ($invalid_referer) {
            rewrite ^(.*)$ /htdocs/hotlinkers.jpg redirect;
            }
        }

Изображение hotlinkers.jpg лежит в корне.


 




Copyright © Lexa Software, 1996-2009.