Отдача большого контента через fast_cgi
Andrew Kopeyko
kaa на zvuki.ru
Чт Ноя 26 16:26:54 MSK 2009
Peter A. Shevtsov wrote:
> 26 ноября 2009 г. 14:05 пользователь Andrew Kopeyko <kaa at zvuki.ru> написал:
>> Peter A. Shevtsov wrote:
>>> server {
>>> if ($host ~* www\.(.*)) {
>>> set $host_without_www $1;
>>> rewrite ^(.*)$ http://$host_without_www$1 permanent;
>>> }
>>>
>>> if ($host !~* www\.(.*)) {
>>> set $host_without_www $host;
>>> }
>>>
>>> if ($host !~*
>>>
>>> ^(mera.com.ru|www.mera.com.ru|m3ra.ru|www.m3ra.ru|mhra.ru|www.mhra.ru|mhera.ru|www.mhera.ru|time-to-live.net.ru|www.time-to-live.net.ru|dotu.ru|www.dotu.ru)$
>>> ) {
>>> return 444;
>>> }
>>>
>>> access_log /var/log/nginx/$host_without_www.access.log main;
>>> error_log /var/log/nginx/wpmu.error.log info;
>>>
>>> root /var/www/html/default;
>>> limit_conn myzone 5;
>>> listen 80;
>>> server_name mera.com.ru www.mera.com.ru m3ra.ru www.m3ra.ru
>>> mhra.ru www.mhra.ru mhera.ru www.mhera.ru time-to-live.net.ru
>>> www.time-to-live.net.ru dotu.ru www.dotu.ru;
>>> client_max_body_size 40m;
>> Да вы, батенька, извращенец!
>>
>> Сделайте нескольки виртуальный серверов, например
>> server {
>> listen 80 default;
>> server_name fake.default.host;
>> return 444;
>> }
>> server {
>> listen 80;
>> server_name mera.com.ru www.mera.com.ru ; # и все прочие ваши имена
>> ...;
>> }
>> и вы избавитесь от ужасающей логики
>> if ($host ~* www\.(.*)) {
>> set $host_without_www $1;
>> rewrite ^(.*)$ http://$host_without_www$1 permanent;
>> }
>> if ($host !~* www\.(.*)) {
>> set $host_without_www $host;
>> }
>>
>
> Ужасающая логика нужна, чтобы был редирект с www.domain.tld на
> domain.tld и логи создавались вида domain.access.log. Или можно как-то
> изящнее это изобразить?
Конечно можно - 2 вирт.сервера вполне могут писать в 1 лог :
server {
listen 80;
server_name www.mera.com.ru;
rewrite ^(.*)$ http://mera.com.ru$2 permanent;
access_log /var/log/domain.access.log main;
}
server {
listen 80;
server_name mera.com.ru;
access_log /var/log/domain.access.log main;
...;
}
>> добавьте
>> location /files/ {
>> internal;
>> root ...;
>> }
>
> А root тут куда вести должен?
Я не знаю где в вашей файловой системе лежит запрашиваемый
/files/19970604_Proses_mirivozzrencheskix_transformatsiy.pdf
Ваши объяснение на URI ясности, в сожалению, не добавляют.
Посмотрите что вам скажет
$ locate 19970604_Proses_mirivozzrencheskix_transformatsiy.pdf
и "отнимите" от пути /files/ - вот примерно туда должен вести root
> По запросу
> myblog.tld/files/file_name.ext идёт рерайт на blogs.php который уже
> делает x-accel-redirect на /blogs.dir/$myblog_id/files/file_name.ext
Значит, не-проксироваться на бэкенд должен
location /blogs.dir/ {
--
Best regards,
Andrew A. Kopeyko <kaa at zvuki.ru>
http://www.zvuki.ru/
Подробная информация о списке рассылки nginx-ru