Конфигурация двух виртуальных хостов на nginx

В статье показано как сделать простейшую конфигурация двух виртуальных хостов на веб сервере nginx:

 

ставим из репозиторий «dotdeb»

/etc/apt/sources.list

deb http://packages.dotdeb.org stable all

импортируем ключ dotdeb’а:

wget http://www.dotdeb.org/dotdeb.gpg -O — -q | sudo apt-key add —

Обновляем список пакетов

apt-get update

Устанавливаем необходимые пакеты для веб сервера, в том числе интерпретатор PHP (php5-fpm), в роли бекенда (backend) сайта:

apt-get install php5 php5-fpm php-pear php5-common php5-mcrypt php5-mysql php5-cli php5-gd php5-dev nginx mysql-server unzip

/etc/php5/fpm/php-fpm.conf

pm.max_children = 25

pm.start_servers = 4

pm.min_spare_servers = 2

pm.max_spare_servers = 10

pm.max_requests = 500Указываем, чтобы php-fpm работал через сокет (а не через :9000 порт)

/etc/php5/fpm/pool.d/www.conf

listen = 127.0.0.1:9000 -> listen = /tmp/fastcgi.socket

И перезапустим php-fpm:

/etc/init.d/php5-fpm restart

Создаем новые виртуальные хосты:

$ touch /etc/nginx/sites-available/site1

$ touch /etc/nginx/sites-available/site2

 

$ ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/site1

$ ln -s /etc/nginx/sites-available/site2 /etc/nginx/sites-enabled/site2

 

Теперь редактируем созданный файл

 

$ gedit /etc/nginx/sites-available/site1

server {

listen 80;

server_name site1;

 

access_log /var/log/nginx/site1.access_log;

error_log /var/log/nginx/site1.error_log;

 

root /var/www/site1;

index index.php;

 

location / {

try_files $uri $uri/ /index.php?q=$uri&$args;

}

 

location ~ .php {

fastcgi_pass unix:/tmp/fastcgi.socket;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

 

location ~ .(tpl|xml|log)$ {

deny all;

}

}

Редактируем второй файл

 

$ gedit /etc/nginx/sites-available/site2

 

server {

listen 80;

server_name site2;

 

access_log /var/log/nginx/site2.access_log;

error_log /var/log/nginx/site2.error_log;

 

root /var/www/site2;

index index.php;

 

location / {

try_files $uri $uri/ /index.php?q=$uri&$args;

}

 

location ~ .php {

fastcgi_pass unix:/tmp/fastcgi.socket;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

 

location ~ .(tpl|xml|log)$ {

deny all;

}

}

Соответственно в каталогах /var/www/site1; /var/www/site2; должны лежать содержимое сайтов.