ПРОЕКТЫ 


  АРХИВ 


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: Запретить выполнение php в конкретном каталоге



Спасибо, так работает. Видимо не
работало из-за того, что у меня в  location ~*
^.+.(jpg|jpeg|gif|png|js|ico)$ { был прописан root.

Конфиг хоста приобрел такой вид:
server {
    listen  80;
    server_name site.ru;
    access_log  /var/log/nginx/site.ru.access.log;
    error_log  /var/log/nginx/site.ru.error.log;

    gzip_static on;

if ($http_user_agent ~ ZmEu) {
return 503;
}

##не принимать от клиентов запросы
длиной более 1 Мб
client_max_body_size 1m;

root   /var/www/site.ru;

## Default location
    location / {
        index index.php index.html index.htm;
        include /var/www/site.ru/.htaccess;
}

location ^~ /uploads/ {
        access_log off;
        expires max;
}

location ~* \.tpl$ {
   deny all;
}

    location /click/ {
        rewrite ^ http://site.ru? permanent;
}

location /robots.txt {
alias /var/www/site.ru/robots_$host.txt;
}

location /sitemap.xml {
alias /var/www/site.ru/uploads/sitemap_$host.xml;
}

## Images and static content is treated different
    location ~* ^.+.(jpg|jpeg|gif|png|js|ico)$ {
      access_log        off;
      expires           max;
    }


## Parse all .php file in the /var/www/site.ru directory
    location ~ .php$ {
    if ($request_uri = /index.php) {
        rewrite ^ http://$host? permanent;#301 redirect
    }
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        #fastcgi_pass   127.0.0.1:9000;
        fastcgi_pass   unix:/tmp/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME 
/var/www/site.ru$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param  QUERY_STRING     $query_string;
        fastcgi_param  REQUEST_METHOD   $request_method;
        fastcgi_param  CONTENT_TYPE     $content_type;
        fastcgi_param  CONTENT_LENGTH   $content_length;
        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
#кеширование FastCGI-запросов
fastcgi_pass_header "Set-Cookie"; # Необходимо для
передачи cookie в соответствующие
переменные, например cookie с именем phpsessid
будет находится в переменной $cookie_phpsessid

            #fastcgi_ignore_headers Cache-Control Expires Set-Cookie; #
Игнорируем заголовки, относящиеся к
кешированию, полученные от
FastCGI-сервера
            fastcgi_cache_key
"$server_addr:$server_port$request_uri|$cookie_phpsessid"; #
Формируем уникальный ключ; в данном
случае различаем пользователей с
помощью $cookie_phpsessid
            fastcgi_cache fastcgi_cache; # Говорим о том,
что использовать надо вышеобъявленную
кеш-зону fastcgi_cache
            fastcgi_temp_path  /tmp/nginx/temp 1 2; # Указываем
папку для хранения временных файлов
            fastcgi_cache_use_stale updating error timeout
invalid_header http_500; # Используем вариант из
кеша (даже если он устарел) в случае
ошибки
fastcgi_cache_valid  200 302 10m;
fastcgi_cache_valid  301 1h;
fastcgi_cache_valid  any 1m;
    }

## Disable viewing .htaccess & .htpassword
    location ~ /\.ht {
        deny  all;
    }

}

server {
    listen       80;
    server_name www.site.ru;
    rewrite   ^  http://site.ru$request_uri?;
}

Здесь кажется уже все правильно.

П.С. Очень приятно получить ответ от
самого Игоря Сысоева.

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

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.