Re: два правила работают по отделности но не вместе

shambler81 nginx-forum at nginx.us
Fri Jan 11 08:14:19 UTC 2013


По части неправильности я понимаю, трудно перейти с apache на nginx старые
замашки тянут за собой.
Однако server  у меня один поскольку
веб панель прикрученая с серверу не позволяет работать с apache+nginx
А следовательно все сайты ходят через default конфиг ;(



server {
        listen   80 default;
        server_name  _;
        server_name_in_redirect  off;
        resolver  127.0.0.1;
        access_log  /var/log/ispconfig/httpd/$host/access.log;
location ~*
^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$
{

#   пусть до файлов по умолчанию
     root /var/www/$host/web;
#  если в $host содержится ввв то он его удаляет  в противном случае пусть
будет /var/www/www.site.ru
#-----------------------------------
 if ($host ~* ^(www\.)(.+)) {
       set $HBW $2;
       root   /var/www/$HBW/web;
}
#-----------------------------------

        access_log off;
        expires 30d;
    }
#------------------------------------ 

location ~* ^.+\.(htm|html)$ {
# данная директива  при отсутствие файла
try_files $uri /index.php;
#   пусть до файлов по умолчанию
     root /var/www/$host/web;
#  если в $host содержится ввв то он его удаляет  в противном случае пусть
будет /var/www/www.site.ru
 if ($host ~* ^(www\.)(.+)) {
       set $HBW $2;
       root   /var/www/$HBW/web;
}
###################################################
        access_log off;
        expires 30d;
    }
##------------------------------------

location / {
#if (!-e $request_filename){
#    rewrite ^/(.+) /index.php/$1 break;
#      }

###################################################
#    пусть до файлов по умолчанию
     root /var/www/$host/web;
#  если в $host содержится ввв то он его удаляет
   if ($host ~* ^(www\.)(.+)) {
       set $HBW $2;
        root   /var/www/$HBW/web;
 }
###################################################
    index  index.html index.htm index.php;
        access_log      off;
        proxy_pass http://$host:82;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}


####################################################
# Настройки для phpmyadmin
 location /phpmyadmin {
               root /usr/share/;
               index index.php index.html index.htm;
 location ~ ^/phpmyadmin/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                    
         proxy_pass http://$host:82;
              proxy_set_header X-Real-IP  $remote_addr;
              proxy_set_header Host $host;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

               }
 location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$
{
                       root /usr/share/;
               }
        }
        location /phpMyAdmin {
               rewrite ^/* /phpmyadmin last;
        }
#Конец phpmyadmin
#####################################################

# Настройки для WEBMAIL
 location /webmail {
               root /var/www/;
               index index.php index.html index.htm;
 location ~ ^/webmail/(.+\.php)$ {
                       try_files $uri =404;
                       root /war/www/webmail;

                        proxy_pass http://127.0.0.1:82;
                        proxy_set_header X-Real-IP  $remote_addr;
                        proxy_set_header Host 127.0.0.1:82/webmail;
                        proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;

               }
 location ~* ^/webmail/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /var/www/webmail/webmail;
               }
        }
        location /WebMail {
               rewrite ^/* $host:82/webmail last;
        }
#Конец webmail
#####################################################

#---------------AWSTATS
location ^~ /awstats-icon {
    alias /usr/share/awstats/icon/;
    access_log off;
}
location ^~ /awstatscss {
    alias /usr/share/doc/awstats/examples/css/;
    access_log off;
}
location ^~ /awstatsclasses {
    alias /usr/share/doc/awstats/examples/classes/;                         
       
    access_log off;
}
#---------------AVSTATS-END

}   # Закрывает server !!!




Так что правило должно работать так же для обсалютно всех доменов ;(

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,234927,234931#msg-234931



Подробная информация о списке рассылки nginx-ru