ПРОЕКТЫ 


  АРХИВ 


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]

Как правильно прописать $ho st, чтобы работало и с www.


  • To: nginx-ru@xxxxxxxxx
  • Subject: Как правильно прописать $ho st, чтобы работало и с www.
  • From: "Nunkomm" <nginx-forum@xxxxxxxx>
  • Date: Tue, 27 Apr 2010 10:55:40 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To:Date; bh=h6mJMo/vs+q8R/mQLTzBpbDFZM/4UYYFxTazrdHD9Dg=; b=UOqQ/COqrKeyLHV0rIPO40c3zJ/nc75mj8qe9fAMi5N8pv5KdGjCSz30SzTFGkgVg0u78F2L7jBcDvI5py4yqVKvkSjagA9IVeMaTQKmB4dxTQeRN8qjPnfpC6XCjrFX;

Здравствуйте, уважаемое сообщество.
Имеется связка nginx 0.8.36 + apache 2.2.x
Домены расположены в папке /wwwuser/, например, 
/wwwuser/doman1.ru
/wwwuser/doman2.ru
Некоторые домены имеют host c www.
При попытке отдать статику в такие домены (с www) с помощью nginx, изображения 
не отображаются (ошибка 404).
Как сделать так, чтобы  отдавала всю статику корректно и для доменов без www., 
и для доменов с www.?
Доменов - более 200 шт.
Конфигурационный файл nginx:
#######################################################################
#
# This is the main Nginx configuration file.  
#
# More information about the configuration options is available on
#   * the English wiki - http://wiki.codemongers.com/Main
#   * the Russian documentation - http://sysoev.ru/nginx/
#
#######################################################################
#----------------------------------------------------------------------
# Main Module - directives that cover basic functionality
#
#   http://wiki.codemongers.com/NginxMainModule
#
#----------------------------------------------------------------------

#от какого имени юзера и какой группы запускать процессы
#user www www;

# Число рабочих процессов, рекомендуется ставить по количеству ядер
worker_processes 100;

# Уменьшает число системных вызовов gettimeofday(), что приводит к увеличению 
производительности
timer_resolution 100ms;

# Изменяет ограничение на число используемых файлов RLIMIT_NOFILE для рабочего 
процесса.
#worker_rlimit_nofile 8192;

# Директива задаёт приоритет рабочих процессов от -20 до 20 (отрицательное 
число означает более высокий приоритет).
worker_priority -5;

error_log         off;
#error_log        logs/error.log  notice;
#error_log        logs/error.log  info;

pid        logs/nginx.pid;


#----------------------------------------------------------------------
# Events Module
#
#   http://wiki.codemongers.com/NginxEventsModule
#
#----------------------------------------------------------------------

events {
    worker_connections  4096;
    use epoll; 
    multi_accept on;
}

#----------------------------------------------------------------------
# HTTP Core Module
#
#   http://wiki.codemongers.com/NginxHttpCoreModule
#
#----------------------------------------------------------------------

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] $request '
                      '"$status" $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  /var/log/nginx/access.log  main;
    access_log off;

    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    # GZIP кеш (с этим могут быть проблемы требует сборка с дерективой  
--with-http_gzip_static_module)
    gzip  on;
    gzip_min_length 1100;
    gzip_buffers 64 8k;
    gzip_comp_level 9;
    gzip_http_version 1.1;
    gzip_proxied any;
    gzip_types text/plain application/xml application/x-javascript text/css;

    
        server {
    listen        123.456.789:85;
    #server_name  name;

    #access_log  /var/log/nginx/host.access.log;
    access_log off;

    # Apache
        location / {

            # адрес подключения к апачу 
            proxy_pass         http://123.456.789:80;

            #proxy_redirect default;
            proxy_redirect off;

            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

            client_max_body_size       1024m;
            client_body_buffer_size    128k;

            proxy_connect_timeout      65;
            proxy_send_timeout         65;
            proxy_read_timeout         65;

            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_max_temp_file_size 0;            
            #proxy_temp_file_write_size 64k;

            #proxy_ignore_client_abort on;

        }

        [b]#Static files location
        # Если идет запрос статики (из списка) то отдаем nginx' ом напрямую из 
папки указанной директивой  root
        # значение переменной $host соответствует текущему запрашивавшему домену

        location ~* 
^.+\.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|mp3|bmp|rtf|flv|swf|avi|mp4|css|js)$
 {

    #чтобы заработала секция Static files css js надо закомнтировть сточку выше 
и откоментировать ту что ниже
        #location ~* 
^.+\.(jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|mp3|bmp|rtf|flv|swf|avi|mp4)$
 {

            expires max;
            root  /wwwuser/$host;
        }[/b]


        #Static files css js
    #ТРЕБУЕТ ИЗМЕНЕНИЙ В ПРЕДУШЕЙ СЕКЦИИ (Static files location) КОНФИГА !!! ну 
и откометирования текущей...
        #Запрос css  и js кеширум nginx ом на всегда (с этим могут быть 
проблемы требует сборка с дерективой  --with-http_gzip_static_module)
        #если в кеше не найден фаил идет запрос к апачу иначе отдаем напрямую 
из папки указанной директивой  root
        #location ~* ^.+\.(css|js)$ {

        #      expires max;
        #      gzip_static on;

        # javascript-and-stylesheets
        #proxy_set_header Host $host;
        #                if (!-f $request_filename) {
        #                        break;
        #                        # адрес подключения к апачу (пример для 80 
порта)
        #                        proxy_pass http://127.0.0.1:80;
        #                }

        #       root   /var/www/$host;
        # }


        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        location ~ /\.ht {
            deny  all;
        }
    }
}

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


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


 




Copyright © Lexa Software, 1996-2009.