Защита картинок от прямого скачивания
Евгений Осипов
m21r at ya.ru
Thu Oct 22 11:51:04 MSD 2009
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 лежит в корне.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20091022/e0f95c03/attachment.html>
More information about the nginx-ru
mailing list