Показаны сообщения с ярлыком Nginx. Показать все сообщения
Показаны сообщения с ярлыком Nginx. Показать все сообщения

среда, 14 декабря 2011 г.

Защита от хотлинка (аnti-leech, link protection) в Nginx

В виртуальный хост Nginx'а добавляем


root /var/www/site1.lan/;
valid_referers none blocked server_names;
if ($invalid_referer) {
return 403;
}



Примерно так будет выглядеть, если добавить в location
server {
server_name site1.lan;
listen 172.16.0.1;
...
...

location ~* ^.+\.(svg|mp3|ogg|mpe?g|zip|gz|bz2?|rar|jpg|png|gif|jpeg|flv)$ {
root /var/www/site1.lan/;
valid_referers none blocked server_names;
if ($invalid_referer) {
return 403;
}
}
...
...

понедельник, 14 ноября 2011 г.

Nginx + Spawn-fcgi

(ОС: Debian 5.0)


Устанавливаем Nginx, PHP
apt-get install nginx php5-common php5-cli php5-cgi php5-mysql gcc make
Собираем Spawn-fcgi:
cd /usr/src
wget http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
tar -xf spawn-fcgi-1.6.3.tar.gz
cd spawn-fcgi-1.6.3
./configure --prefix=/opt/spawn-fcgi
make install
Создаем Init скрипт /etc/init.d/spawn-fcgi
#!/bin/bash
case "$1" in
start)
echo "starting..."
/opt/spawn-fcgi/bin/spawn-fcgi -U www-data -G www-data -p 9000 -F 2 -C 3 -f php-cgi
;;
stop)
echo "stopping..."
killall php-cgi
;;
restart)
echo "restarting..."
killall php-cgi
sleep 1
/opt/spawn-fcgi/bin/spawn-fcgi -U www-data -G www-data -p 9000 -F 2 -C 3 -f php-cgi
;;
*)
echo "Usage: $0 [start|stop|restart]"
esac
exit
Выставляем права и добавляем его в автозагрузку
chmod 700 /etc/init.d/spawn-fcgi
update-rc.d spawn-fcgi defaults
В /etc/nginx/sites-enabled/default расскоментируем и корректируем часть конфига
location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
                fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default$fastcgi_script_name;
                include fastcgi_params;
        }
Запускаем Spawn-fcgi, Nginx
invoke-rc.d spawn-fcgi start
invoke-rc.d nginx start

четверг, 10 ноября 2011 г.

Nginx отдача статичных данных


location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
                        root /var/www/local.lan;
                        access_log /var/log/apache2/local.lan.access.log;
                        expires modified +24h;
                        add_header cache-control private;
}

при этом Nginx естественно используется фронтендом к другому веб-серверу, например к Apache.

четверг, 27 октября 2011 г.

Запрет запуска PHP скриптов из определенного каталога

Для веб-сервера Nginx

Защита каталога uploads, открываем конфигурационный файл целевого виртуального хоста Nginx и прописываем строчку

 if ($uri !~ "^/uploads/") { перед fastcgi_pass 127.0.0.1:9000;

Примерно вот так это должно выглядеть


location ~* \.php { if ($uri !~ "^/uploads/") { fastcgi_pass 127.0.0.1:9000; } fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi_params; }