Welcome! Log In Create A New Profile

Advanced

кэширование, или помогите понять (построить) логику

September 24, 2010 11:15PM
Здравствуйте, уважаемые гуру.

Помогите пожалуйста разобраться с построением конфига, потому что уже мозги кипят, откровенно говоря..
Имеется друпал и форум на пхпбб -
[code]
server {
.....
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}

# для imagecache реврайтец
location ~ /sites/default/files/imagecache/ {
try_files $uri /index.php?q=$uri;
}

# скрипты форума не кэшируем вообще
location ~ /forum/.*\.php$ {
error_page 407 @nocache;
try_files @nocache =407;
}

location @nocache {
try_files $uri =404;
fastcgi_pass backend;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME /var/www/$host/htdocs$fastcgi_script_name;
}

# все другие php-скрипты будем кэшировать, походу это друпал с 90% вероятностью
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass backend;
fastcgi_param SCRIPT_FILENAME /var/www/$host/htdocs$fastcgi_script_name;
include /etc/nginx/fastcgi_params;

fastcgi_cache root;
fastcgi_cache_key бла-бла-бла
fastcgi_cache_.......
}

# отдельно для форума кое-че таки кэшируем, картинки, стили...
location ~ (регулярка) {

try_files $uri =404;
fastcgi_pass backend;
fastcgi_param SCRIPT_FILENAME /var/www/$host/htdocs$fastcgi_script_name;
include /etc/nginx/fastcgi_params;

fastcgi_cache phpbbfiles;
fastcgi_cache_то-се
fastcgi_cache_.......
}

.......
}
[/code]

Вот...
Вся эта конструкция, не смотря на ее кривость в некоторых местах (например @nocache =407, но мне локейшн @nocache еще будет нужен, а как туда иначе перейти в этой ситуации я так и не понял), вполне себе работает как нужно, если бы не одно но - наличие магазина и еще кое-какого контента, который кэшировать ну никак нельзя.
Добавляю например -
location ~ /catalog {
и вот тут нужно бы сделать реврайт для чистых ссылок, то есть перекинуть на /index.php?q=$uri&$args... Вот тут я и перестал понимать как добиться этого. Банальный rewrite сюда если вписать, то оно все равно будет кэшировать, потому как php у нас определено выше. Вписать реврайт в секцию server тоже не получится, так как там не один друпал.. Ситуация еще усугубляется тем, что мне нужно будет вставить еще кучу limit_req, то есть наклепать еще множество локейшнов, при этом я хочу чтобы локейшн для "общего .php" таким и оставался как сейчас, что бы не плодить тонны деректив....
Фактически я написал было конфиг, да он получился настолько огромный и не уклюжий, что мне его не то что тут стыдно показывать, а даже страшно на сервер заливать.

Прошу вашей помощи. Разъясните начинающему, как правильно писать подобные конфигурации. Да и вообще что тут у меня не так, потому как мне кажется что непременно что-то не так (я всего неделю как nginx кручу)..

С уважением....
Subject Author Posted

кэширование, или помогите понять (построить) логику

amberbam September 24, 2010 11:15PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 204
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready