Назад | Перейти на главную страницу

Не удается заставить виртуальные хосты (серверные блоки) на Nginx работать

Я только начал с Nginx, пытаюсь использовать виртуальные хосты, но не могу понять, что не так с моей конфигурацией ...

Вот содержание папки с поддержкой сайтов:

root@cavalier:/etc/nginx/sites-enabled# ls -hal
total 12K
drwxrwxr-x 2 root vnc  4.0K Jul 28 18:06 .
drwxr-xr-x 5 root root 4.0K Jul  1 16:58 ..
-rw-r--r-- 1 root root  360 Jul 28 18:07 default
lrwxrwxrwx 1 root root   31 Jul 28 18:01 example1.com -> ../sites-available/example1.com
lrwxrwxrwx 1 root root   33 Jul 28 17:57 example2.com -> ../sites-available/example2.com

Содержание дефолт серверный блок:

root@cavalier:/etc/nginx/sites-enabled# cat default
server {
listen 80 default_server;

root /www/example.com;
index index.html index.php;

location / {
try_files $uri $uri/ =404;
}

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;

# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}

В пример 1 серверный блок:

root@cavalier:/etc/nginx/sites-enabled# cat example1.com
server {
listen example1.com:80;
server_name www.example1.com example1.com;

root /www/example1.com;
index index.html index.php;

location / {
try_files $uri $uri/ =404;
}

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;

# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}

В пример2 серверный блок:

root@cavalier:/etc/nginx/sites-enabled# cat example2.com
server {
server_name example2.com;

root /www/example2.com;
index index.php;

location / {
try_files $uri $uri/ =404;
}

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;

# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}

По какой-то причине nginx обслуживает файлы только с example1.com для всех доменов. Он даже игнорирует конфигурацию сервера по умолчанию и сразу переходит к example1.

Простите, я новичок в nginx и в основном использую Apache. Я предполагаю, что это должно быть относительно просто, и я просто кое-что упускаю ... Я потратил часы, пытаясь понять это, и любая помощь будет оценена.

Server1 наиболее точно соответствует запросу: IP: порт, а два других соответствуют только порту. Итак, nginx выбирает server1 для всех запросов, поступающих на эту пару IP: порт.