LINUX.ORG.RU
ФорумAdmin

Кэшировнаие nginx


0

1

Здраствуйте. Для кэширования сайта на DLE используется кэширвоание в nginx. Как оптимизировать код под nginx 1.0? Стоит ли использовать кэширование nginx если на сревере используется eaccelerator + статика отдается через nginx?

http {
proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=one:16m inactive=7d max_size=1024m;
proxy_temp_path /var/cache/nginx/temp; #эта директива будет наследоваться из http секции, если не задано другое.

server {
listen 127.0.0.1:80;
server_name example.com www.example.com;
proxy_temp_path /var/cache/nginx/example.com;

location @nocached {
proxy_pass 127.0.0.1:8080;
proxy_redirect example.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}

location / {
proxy_pass 127.0.0.1:8080;
proxy_redirect example.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
#здесь мы фильтруем наших залогиненых пользователей
if ($cookie_dle_user_id) { return 412; }
if ($cookie_dle_password) { return 412; }
if ($request_method = POST ) {
return 412;
}
error_page 412 = @nocached;
proxy_cache one;
proxy_cache_key «$request_method|$is_args|$host|$request_uri»;
proxy_hide_header «Set-Cookie»;
proxy_ignore_headers «Cache-Control» «Expires»;
proxy_cache_valid 200 302 304 5m;
proxy_cache_valid 301 1h;
proxy_cache_valid 503 4s;
proxy_cache_valid any 1m;
proxy_cache_use_stale http_502 http_503 http_504;
}

location ~ (admin.php|index.php?action=logout) {
proxy_pass 127.0.0.1:8080;
proxy_redirect example.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}

location ~* ^.+\.(jpg|jpeg|gif|png|svg|htm|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /var/www/example/data/www/example.com;
expires 1y;
access_log /var/www/httpd-logs/example.com.access.log;
error_page 404 = @fallback;
}
}
}



Последнее исправление: sib (всего исправлений: 1)

Если производительности хватает то не трогай.

PS а что там в 1.0 появилось такого что можно заоптимизировать? Я не в курсе.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

С версии 0.7 перерабатывался proxy_cache, сейчас хотелось бы оптимизировать конфиг под все новые изменения в nginx.

sib
() автор топика
Ответ на: комментарий от sib

Не нашёл ни в чейнжлоге ни в описании о каких-то глобальных изменениях. Там всего семь директив, прочитай и посмотри что там могло измениться или какие новые фичи будут полезны. Я бы добавил, например, proxy_cache_min_uses.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Насколько я понял, в новых версиях не имеет сымсл proxy_hide_header «Set-Cookie», не совсем понятно нужно ли использовать if ($request_method = POST ), nginx в новых версиях кэширует только get запросы?

sib
() автор топика
Ответ на: комментарий от sib

Я в сырцах не нашёл ничего про куки, так что, думаю, лучше это оставить. И про POST тоже.

Впрочем, обе эти вещи легко проверить.

true_admin ★★★★★
()

При использовании конфига, скрипты кэшируются, но вот страницы генерируемые dle хотя и кэшируются, но запросы всегда идут к apache,а не берутся страницы из кэша nginx.

sib
() автор топика

в продакш я бы nginx1 ставить поопасался бы. в сысоевской рассылке nginx-ru@nginx.org наблюдаются множественные проблемы и с утечкой сокетов и траблы с кешированием и много чего еще, траблы конечно фиксятся но....

real_maverick ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.