NGINX sites locations

Привет, уважаемые читатели.
В статье CENTOS 7+NGINX+PHP я описал, как установить NGINX и сделать связку с php.
В этой краткой статье я расскажу, как выглядит базовая настройка для большого кол-ва сайтов на одном сервере.

Например, у вас есть 2-3 разных домена для сайтов. В вашу задачу входит сделать 2 странички этих сайтов.

Начнем с создания директорий, в которых будет храниться информация о сайтах.

mkdir /var/www/имявашегодомена1/html/
mkdir /var/www/имявашегодомена2/html/

В этих директориях будет храниться вся информация о сайтах, в том числе и сам index.html файл. Например, если вам нужно вставить картинки на вашем сайте, можно просто положить в эту папку, а в index.html указать имя файла/картинки для его отображения.
Можно, конечно, создать отдельную директорию для файлов, но тогда будет нужно прописывать точный путь к файлу.

Создаем в каждой из папок html по index.html файлу:

nano /var/www/имявашегодомена1/html/index.html
nano /var/www/имявашегодомена2/html/index.html

Теперь наполним их чем нибудь:

<!DOCTYPE html>
<html>
<body>

<video width="1280" height="720" controls autoplay>
<source src="Ember.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

</body>
</html>

Для первого сайта я залил видео.

<!DOCTYPE html 
<HTML>
   <HEAD>
      <TITLE>
         A Small Hello 
      </TITLE>
   </HEAD>
<BODY>
   <H1>Hi</H1>
   <P>This is very minimal "hello world" HTML document.</P> 
</BODY>
</HTML>

Для второго будет отображаться текст.

С этим порешали. А теперь пора приступить к созданию конфигурационных файлов сайтов.

mkdir /etc/nginx/sites-available
mkdir /etc/nginx/sites-enabled

В папке sites-available будут лежать конфиги доступных сайтов.
В папке sites-enabled будут находиться символические ссылки на доступные сайты. т.е сайтов у вас может быть много, но активных(enabled) меньше.

nano /etc/nginx/sites-available/имявашегодомена1.conf
nano /etc/nginx/sites-available/имявашегодомена2.conf

Конфиг возьмем из доступного шаблона и немного изменим.

server {
listen 80;
server_name имявашегодомена1 www.имявашегодомена1 ;
root /var/www/имявашегодомена1/html;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

try_files $uri $uri/ =404;

location / {
index index.html;
}

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

Аналогичным образом отредактируем конфиг и для второго сайта.
Теперь добавим, в основной конфиг, информацию о новой директории с сайтами.

nano /etc/nginx/nginx.conf

Строчку в конец блока http:

include /etc/nginx/sites-enabled/*.conf;

Теперь создадим символичные ссылки в директорию sites-enabled:

ln -s /etc/nginx/sites-available/имявашегодомена1.conf /etc/nginx/sites-enabled/имявашегодомена1.conf
ln -s /etc/nginx/sites-available/имявашегодомена2.conf /etc/nginx/sites-enabled/имявашегодомена2.conf

Ссылки созданы, теперь перезагружаем nginx:

systemctl restart nginx

И пробуем зайти на наш сайт.