11 сентября 2009 г.

Виртуальные сервера в NGINX

Для чего нужны виртуальные веб сервера? Допустим возникла необходимость разместить два и более сайта на одном сервере - нет проблем.
В примере описан способ настройки для Ubuntu. Пусть у нас есть сайт example.com и нам нужно создать еще сайт site.net на этом же сервере. Файл /etc/nginx/sites-available/default наверняка уже содержит что-то похожее на:
server {
    listen  192.168.10.1:80;
    server_name   example.com  www.example.com;

    location / {
        root /var/www/example.com;
        index  index.html index.htm;
    }
}
Копируем файл default в файл с названием site.net
cd /etc/nginx/sites-available
sudo cp ./default ./site.net
Затем открываем файл site.net в вашем любимом редакторе
sudo vi ./site.net
и меняем строки, в которых есть упоминания о example.com на site.net. В нашем случае это строки server_name и root. В результате получится что-то подобное
server {
    listen  192.168.10.1:80;
    server_name   site.net  www.site.net;

    location / {
        root /var/www/site.net;
        index  index.html index.htm;
    }
}
Краткое пояснение: на 80 порту будут висеть два сервера: example.com и site.net. К какому из них адресуется запрос - зависит от секции Host в GET/POST запросе.
Теперь для того, чтобы все наши махинации вступили в силу - необходимо создать директорию /var/www/site.net, сделать symlink файла site.net в директорию /etc/nginx/sites-enabled и перезапустить nginx.
sudo ln -s /etc/nginx/sites-available/site.net /etc/nginx/sites-enabled/
sudo /etc/init.d/nginx restart

Комментариев нет:

Отправить комментарий