ФорумРазработкаУстановка и администрирование ПОВебсервер → связка nginx, apache и автоматические субдомены.

связка nginx, apache и автоматические субдомены.

  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 25 января 2010 г. 10:59, спустя 1 час 25 минут 39 секунд

    Стоит связка nginx, apache2
    Настроены автоматические субдомены следующим образом:
    Ngixn
    server {
       listen 80;
       server_name example.com *.example.com;
       root /var/www/example.com/$subdomain;
       set $subdomain "";
       if ($host ~* ^([a-z0-9-\.]+)\.example.com$) {
           set $subdomain $1;
       }
       if ($host ~* ^www.example.com$) {
           set $subdomain "";
       }
       location / {
       proxy_pass  http://127.0.0.1:8181;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-for $remote_addr;
           proxy_set_header Host $host;
           proxy_connect_timeout 120;
           proxy_send_timeout 120;
           proxy_read_timeout 180;
       }
       location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
           root /var/www/example.com/;
       }
    }

    так же в location ~* \.(jpg|…|js)$ { } в root указывал /var/www/example.com/$subdomain;
    Apache
    <VirtualHost *:8181>
     DocumentRoot /var/www/example.com/
     ServerName example.com

     ServerAlias *.example.com
     RewriteEngine On
     RewriteCond %{HTTP_HOST} !^www.example.com$
     RewriteCond %{HTTP_HOST} ^((.*)\.)example.com$
     RewriteRule ^/(.*) /%2/$1
    </VirtualHost>


    Но статику nginx на субдоменах отдавать не хочет, точнее пытается тащить из корня сайта(/var/www/example.com/).
    Как быть? :)
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 25 января 2010 г. 8:41, спустя 21 час 41 минуту 41 секунду

        root /var/www/example.com/$subdomain;
    set $subdomain "";


    у тебя $subdomain объявляется позже чем юзается?
    Спустя 33 сек.
    Дай доступ - помогу. А так с ходу не скажу..
    adw/0
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 25 января 2010 г. 9:02, спустя 21 минуту 26 секунд


        root /var/www/example.com/$subdomain;
       set $subdomain "";


    у тебя $subdomain объявляется позже чем юзается?
    Спустя 33 сек.
    Дай доступ - помогу. А так с ходу не скажу..
    но скрипты то запускает правильно :) вот в чем сахар :)
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 25 января 2010 г. 9:27, спустя 24 минуты 42 секунды


    server {
    listen 80;
    server_name selfchief.rus *.selfchief.rus;

    set $subdomain "";
    if ($host ~* ^([a-z0-9-\.]+)\.selfchief.rus$) {
    set $subdomain $1;
    }
    if ($host ~* ^www.selfchief.rus$) {
    set $subdomain "";
    }

    access_log /home/selfchief/web-data/logs/nginxaccess_selfchief.rus.log main;
    error_log /home/selfchief/web-data/logs/nginxerror_selfchief.rus.log;

    # Статическиое наполнение отдает сам nginx
    # back-end этим заниматься не должен
    location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
    root /home/selfchief/web-data/www/selfchief.rus/$subdomain;
    }

    # Перенаправление на back-end
    location / {
    proxy_pass http://127.0.0.1:8181;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-for $remote_addr;
    proxy_set_header Host $host;
    proxy_connect_timeout 120;
    proxy_send_timeout 120;
    proxy_read_timeout 180;
    }

    }



    вот рабочий вариант
    adw/0
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 25 января 2010 г. 9:34, спустя 6 минут 32 секунды

    adw0rd, спасибо :)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!