Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Поддомены для связки apache+nginx  (Прочитано 2993 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн butteff

  • Автор темы
  • Участник
  • *
  • Сообщений: 102
  • Предприниматель, веб программист, администратор.
    • Просмотр профиля
    • Сообщество пользователей, программистов и профессионалов в операционной системе линукс
Поддомены для связки apache+nginx
« : 23 Января 2013, 22:16:48 »
Хочется немножко облегчить задачу и не прописывать ручками конфиги, а автоматизировать процесс.
Хочется, создавая папку внутри папки с доменом с некоторым именем, автоматически веб сервер понимал, что это папка для поддомена?

К примеру есть папка site.ru
в этой папке я создаю папку sub_subdomain (приставка sub_ нужна для того, чтобы не каждая папка была поддоменом)
и сразу же обращаясь через браузер к subdomain.site.ru вижу этот сайт?

Просто часто создаем и меняем поддомены, хочется автоматизировать процесс.
Какую регулярку прописать в конфигах?

на сервере проксирующая связка nginx + apache

Оффлайн shumtest

  • Активист
  • *
  • Сообщений: 731
  • Это вам просто кажется...
    • Просмотр профиля
    • Блог Шумомера

Оффлайн butteff

  • Автор темы
  • Участник
  • *
  • Сообщений: 102
  • Предприниматель, веб программист, администратор.
    • Просмотр профиля
    • Сообщество пользователей, программистов и профессионалов в операционной системе линукс
Re: Поддомены для связки apache+nginx
« Ответ #2 : 05 Февраля 2013, 04:51:13 »
Супер, а где бы взять нечто подобное, но для apache?

Оффлайн shumtest

  • Активист
  • *
  • Сообщений: 731
  • Это вам просто кажется...
    • Просмотр профиля
    • Блог Шумомера
Re: Поддомены для связки apache+nginx
« Ответ #3 : 05 Февраля 2013, 11:04:14 »
Там-же, следующая заметка: Apache: сабдомены в папках

Оффлайн butteff

  • Автор темы
  • Участник
  • *
  • Сообщений: 102
  • Предприниматель, веб программист, администратор.
    • Просмотр профиля
    • Сообщество пользователей, программистов и профессионалов в операционной системе линукс
Re: Поддомены для связки apache+nginx
« Ответ #4 : 06 Февраля 2013, 07:50:55 »
Apache настроил по Вашей статье и все прекрасно работает:
http://test.sil-design.ru:8080

Но не работает то же самое для nginx http://test.sil-design.ru/

Дело в том, что у меня nginx настроен так, что он отдает статику сам и быстро, а у apache берет то, что выполняется и также быстро отдает. Обычный конфиг выглядит так:

upstream backend {
  # Адрес back-end'a
  server localhost:8080;
}

server {
    listen   80;
    server_name www.sil-design.ru sil-design.ru;

    access_log /home/butteff/domains/sil-design.ru/logs/nginx_access.log;
    error_log /home/butteff/domains/sil-design.ru/logs/nginx_error.log;

    # Перенаправление на back-end
    location / {
        proxy_pass  http://backend;
        include     /etc/nginx/proxy.conf;
    }

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

Пытался оптимизировать свой, брав регулярные из Вашего конфига, не получилось ничего хорошего, php скрипты отдаются, но картинок и т.д. все равно нет. А часто просто выдает 403 ошибку.

Что посоветуете в моем случае?

Пользователь решил продолжить мысль 06 Февраля 2013, 07:52:48:
Вот мой горе конфиг:

upstream backend {
  # Адрес back-end'a
  server localhost:8080;
}

server {
    listen   80;
    server_name www.sil-design.ru sil-design.ru;

    access_log /home/butteff/domains/sil-design.ru/logs/nginx_access.log;
    error_log /home/butteff/domains/sil-design.ru/logs/nginx_error.log;

    # Перенаправление на back-end
    location / {
        proxy_pass  http://backend;
        include     /etc/nginx/proxy.conf;
    }

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

server {
   
    listen    80;
    server_name   ~^(.*)\.sil-design\.ru$;
 
    access_log /home/butteff/domains/sil-design.ru/logs/nginx_access.log;
    error_log /home/butteff/domains/sil-design.ru/logs/nginx_error.log;

    # Перенаправление на back-end
    location / {
        proxy_pass  http://backend;
        include     /etc/nginx/proxy.conf;
    }

    # Статическиое наполнение отдает сам nginx
    # back-end этим заниматься не должен
    location ~* \.(jpg|jpeg|gif|png|css|ico|bmp|swf|js)$ {
          root /home/butteff/domains/sil-design.ru/public_html/sub_$1;
    }
}




Пользователь решил продолжить мысль 06 Февраля 2013, 08:37:45:
Заменил

 location ~* \.(jpg|jpeg|gif|png|css|ico|bmp|swf|js)$ {
          root /home/butteff/domains/sil-design.ru/public_html/sub_$1;
    }

на просто

          root /home/butteff/domains/sil-design.ru/public_html/sub_$1;

Теперь все работает. Огромное спасибо за конфиги и Ваш великолепный сайт
   
« Последнее редактирование: 06 Февраля 2013, 08:37:45 от butteff »

 

Страница сгенерирована за 0.04 секунд. Запросов: 25.