LINUX.ORG.RU
решено ФорумAdmin

Server blocks(Virtual hosts) NginX

 , ,


0

1

Здравствуйте!

Два домена, один сервер.

/etc/nginx/conf.d/domainA.conf

server {
        listen 80;
        server_name domainA.ru www.domainA.ru;
        root /var/www/domainA.ru; 
        access_log  /var/log/nginx/domainA.access.log main;

        /*Друпал-специфичные дериктивы и PHP через SpawnFCGI*/
}

/etc/nginx/conf.d/domainB.conf

server {
        listen 80;
        server_name domainB.com www.domainB.com;
        root /var/www/domainB.com; 
        access_log  /var/log/nginx/domainB.access.log main;

        auth_basic "domainB";
        auth_basic_user_file /var/www/domainB.com/.htpasswd;

       /*Друпал-специфичные дериктивы и PHP через SpawnFCGI*/
}

При заходе на оба адреса(с «www.» и без) открывается первый сайт.
Не могу понять где ошибка.

CentOS 6.2, nginx 1.0.15

★★★★

Ответ на: комментарий от Yustas

Попробуйте создать

server {
    listen      80;
    server_name "";
    return      444;
}

Есть подозрение что заголовок Host где то режется... Если так то вам вернут error.

pyatak123 ()
Ответ на: комментарий от Yustas

ok! Попробуйте так server { listen 80 default_server; ...... } Сделайте это во втором конфиге. Что будет? И так на всякий, вы reload делали же, да?!

pyatak123 ()
Ответ на: комментарий от pyatak123

В процессе экспериментов отвалилось оформление у Друпала. :)

И так на всякий, вы reload делали же, да?!

service nginx restart

Yustas ★★★★ ()

Посмотрите, какой access log прирастает при заходе. МОжет, в друпале что-то накосячено, что он обрабатывает БД из соседнего сайта.

Bers666 ★★★★★ ()
Ответ на: комментарий от Bers666

Посмотрите, какой access log прирастает при заходе.

Пишет что заходит на первый сайт. При заходе на оба.

МОжет, в друпале что-то накосячено, что он обрабатывает БД из соседнего сайта.

Нет, там чистая инсталляция с оффсайта. Только распакована.

Yustas ★★★★ ()

А ничего, что у меня конфиги хостов инкладятся из /etc/nginx/cond.d/ а не воткнуты в nginx.conf ?

Yustas ★★★★ ()
Ответ на: комментарий от Yustas

А ничего, что у меня конфиги хостов инкладятся из /etc/nginx/cond.d/ а не воткнуты в nginx.conf ?

Порядок инклудов поменяй.

tazhate ★★★★★ ()
Ответ на: комментарий от tazhate

У меня «include /etc/nginx/conf.d/*.conf;»
Явно стоит прописать?

Запихнул всё в nginx.conf, заработало.
Завтра поэкспериментирую с порядком инклудов.

Всем спасибо.

Yustas ★★★★ ()
Ответ на: комментарий от Yustas

Порядок инклудов поменяй.

Это не поможет.
NGINX простой как пробка ищете логическую ошибку у себя, типа файл не подключается в /e/ngx/ngx.conf и тд и тп.

vadv ★★ ()
Ответ на: комментарий от Yustas

тогда сделай killall nginx и убедись что никто не отвечает. Я натыкался что в памяти болталась старая копия (кривые руки, кривые скрипты...). Ну и подними уровень логгирования и убедись что errorlog рабочий.

true_admin ★★★★★ ()

я бы на первом сайте сделал phpinfo, и посмотрел заголовки запроса которые приходят, дабы убедиться что беда в nginx.

redixin ★★★★ ()
Ответ на: комментарий от redixin

я бы на первом сайте сделал phpinfo

Что там надо увидеть?

посмотрел заголовки запроса которые приходят

Это через *dump или плагин какой для браузера?

Yustas ★★★★ ()
Ответ на: комментарий от true_admin

Я натыкался что в памяти болталась старая копия

Кстати, похоже. Т.к. такое чувство что данные кешированы что ли.
После правок темы оформления вадавалось исходное.

Yustas ★★★★ ()
Ответ на: комментарий от Yustas

это в выхлопе phpinfo можно посмотреть заголовки. кажется $_SERVER или как там оно в пхп не припомню уже. интересует поле Host (HTTP_HOST)

redixin ★★★★ ()
Ответ на: комментарий от Yustas

короче, тебя ждёт увлекательный трах с настройками nginx, дампами phpinfo() итд на предмет того что происходит с хедерами и что где не работает. Обычно всё дело в какой-нить одной фигне типа REQUEST_URI, QUERY_STRING, DOCUMENT_URI, etc...

true_admin ★★★★★ ()
Ответ на: комментарий от true_admin

При том что их я не трогал. Был один файл, как в http://wiki.nginx.org/Drupal, только с путями к логам и SpawnFCGI вместо PHPFPM.
Я его скопировал, изменил имена хостов и пути к ним + директиву:

 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

Инклад через «include /etc/nginx/conf.d/*.conf;»

Ломаться здесь нечему. Тупость какая-то мелкая но, «удачная».

PS. Оффтоп:
Как сделать что бы nginx ен позволял запускать скрипты из upload-директории
$drupalroot/sites/default/files

Yustas ★★★★ ()
Ответ на: комментарий от Yustas

include следует читать как «инклюд», а не «инклад».

anonymous ()

Проблему пока заткнул, запихиванием всего в nginx.conf.
Всё упирается в непонимание мной процесса конфигурации nginx.

Всем ещё раз спасибо.
Дальше уже оффтопп.

Yustas ★★★★ ()
Ответ на: комментарий от Yustas

Почитай книжку Nginx HTTP Server by Clément Nedelcu, может поможет. :3

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.