nginx hotlinking
kwiecień 27th, 2008Dziś kawałek konfiguracji nginx, która ma uniemożliwić ‘hotlinkowanie’ np obrazów.
Wykorzystany zostanie do tego moduł ‘map’
Najpierw sekcja http
http {
map $referer $forbidden {
hostnames;
default 1;
*.eqax.pl 0;
}
...
W ten sposób zdefiniowano, że tylko $http_referer zawierający *.eqax.pl będzie będzie zezwalał na pobieranie poniżej określonej zawartości.
Poniżej w sekcji server
set $referer "";
if ($http_referer ~* '^http://([^:/]+)') {
set $referer $1;
}
...
Pozostało jedynie określić jakie pliki mają być chronione (kryterium to rozszerzenie)
location ~ \.(jpg|jpeg|gif|avi|png|mov|mpg|mpeg|pdf)$ {
if ($forbidden) {
rewrite ^ http://www.eqax.pl/stollen.jpg;
}
expires 1w;
}
Od razu ‘przy okazji’ przekazano dyrektywę odnośnie okresu cache’owania w/w plików.