Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
limit_conn + internal location
Добрый вечер,
имеем
location / {
client_body_buffer_size 256k;
proxy_buffers 128 64k;
proxy_read_timeout 60;
proxy_connect_timeout 3;
proxy_pass http://127.0.0.1:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
location /merge.php {
#access_log /tmp/merge.log main;
root /tmp/proxy_store;
error_page 404 = /fetch$uri;
}
location /fetch/ {
internal;
limit_conn merging 2;
#access_log /tmp/merge.log main;
proxy_pass http://127.0.0.1:8080;
proxy_temp_path /tmp/proxy_temp;
proxy_store /tmp/proxy_temp/$request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
Вопрос. Как будет работать limit_conn в internal location?
Идея такой схемы вот в чём. Если дать юзерам возможноть долбить в бэкенд и
сохранять каждый раз новый файл в proxy_temp_path, то можно получить отказ в
обслуживании (кончатся какие-нибудь структуры фс, всё начнёт тормозить,
легитимный контект (а его мало) не куда будет записать) и limit_conn должен, по
идее, решить эту проблему (хотя бы частично).
|