ПРОЕКТЫ 


  АРХИВ 


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: Отдача большого контент а через fast_cgi



Peter A. Shevtsov wrote:
26 ноября 2009 г. 14:05 пользователь Andrew Kopeyko <kaa@xxxxxxxx> написал:
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@xxxxxxxx>
http://www.zvuki.ru/

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


 




Copyright © Lexa Software, 1996-2009.