Nginx - конфигурация двухдоменов
Я новичок в Nginx, и я пытаюсь работать с субдоменами.
Что бы я хотел сделать, это взять мой домен (позвоните ему example.com
) и добавьте:
-
sub1.example.com
,
-
sub2.example.com
, а также
-
www.example.com
.
Я знаю, как это сделать с Apache, но Nginx является настоящим головоломкой.
Я запускаю Debian 6.
Мой текущий /etc/nginx/sites -enabled/example.com:
server {
server_name www.example.com example.com;
access_log /srv/www/www.example.com/logs/access.log;
error_log /srv/www/www.example.com/logs/error.log;
root /srv/www/www.example.com/public_html;
location / {
index index.html index.htm;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name;
}
}
Он работает, чтобы служить example.com и www.example.com.
Я попытался добавить второй серверный блок в тот же файл, что:
server {
server_name www.example.com example.com;
access_log /srv/www/www.example.com/logs/access.log;
error_log /srv/www/www.example.com/logs/error.log;
root /srv/www/www.example.com/public_html;
server {
server_name sub1.example.com;
access_log /srv/www/example.com/logs/sub1-access.log;
error_log /srv/www/example.com/logs/sub1-error.log;
root /srv/www/example.com/sub1;
}
location / {
index index.html index.htm;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /srv/www/www.example.com/public_html$fastcgi_script_name;
}
}
Не повезло. Есть идеи? Я бы очень оценил любую обратную связь.
Ответы
Ответ 1
Ошибка заключается в помещении блока сервера внутри блока сервера, вы должны закрыть основной блок сервера, а затем открыть новый для поддоменов
server {
server_name example.com;
# the rest of the config
}
server {
server_name sub1.example.com;
# sub1 config
}
server {
server_name sub2.example.com;
# sub2 config
}
Ответ 2
Вам просто нужно добавить следующую строку вместо своего имени_сервера
server_name xyz.com *.xyz.com;
И перезапустите Nginx. Что это.