Nginx.conf

Содержание
Введение
sites-available
Настройка нового сайта
sites-enabled
Проверить конфиг
Статьи про Nginx

Введение

Файл конфигурации называется nginx.conf и находится в директории

/etc/nginx/

В нём довольно много комментариев и пустых строк. Инструкция по их удалению с помощью sed лежит здесь

sites-available

На практике приходится часто работать не с /etc/nginx/nginx.conf а с конфигурациями сайтов.

Выполните

ls /etc/nginx/sites-available

Если вы на только что установленном Nginx результат будет следующим:

default

Откройте файл default и найдите в контексте http → server → location → root

Либо выполните

cat /etc/nginx/sites-available/default | grep root

root /var/www/html; # deny access to .htaccess files, if Apache's document root # root /var/www/example.com;

Из результатов предыдущей команды можно сделать вывод, что нужный .html файл находится в

/var/www/html

ls /var/www/html/

index.nginx-debian.html

Проверить тот ли файл используется в данный момент можно внеся в него изменения и открыв url сервера в браузере.

Я добавлю одну строку с адресом сайта topbicycle.ru

vi /var/www/html/index.nginx-debian.html

<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <h2><a href="https://www.topbicycle.ru">topbicycle.ru</a></h2> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html>

Если вы отредактировали правильный файл, то результат будет таким

Welcome to Ngix

Настройка нового сайта

Чтобы создать и настроить другой сайт, например topbicycle.ru сперва создайте в /var/www/ директорию topbicycle.ru/html

sudo mkdir -p /var/www/topbicycle.ru/html

И закиньте туда index.html файл

sudo cp /var/www/html/index.nginx-debian.html /var/www/topbicycle.ru/html/index.html
sudo sed -i.bak 's/nginx/topbicycle/g;s/\.com/\.ru/g;s/\.org/\.ru/g' /var/www/topbicycle.ru/html/index.html

Скопируйте конфигурацию

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/topbicycle.ru

Удалите лишние комментарии

sudo sed -i.bak '/^\s*#/d;/^$/d' /etc/nginx/sites-available/topbicycle.ru

Файл с настройками будет выглядеть примерно так

server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } }

default_server может быть только один. Из какого-то файла нужно удалить запись default_server.

Сделать это можно командой

sed -i.bak 's/\ default_server//' /etc/nginx/sites-available/topbicycle.ru

Проверить что default_server указано только в одном файле можно командой

grep -R default_server /etc/nginx/sites-enabled/

/etc/nginx/sites-enabled/default: listen 80 default_server; /etc/nginx/sites-enabled/default: listen [::]:80 default_server; /etc/nginx/sites-enabled/default: # listen 443 ssl default_server; /etc/nginx/sites-enabled/default: # listen [::]:443 ssl default_server;

root /var/www/html; нужно заменить на путь до сайта, то есть на root /var/www/topbicycle.ru/html;

server_name _; заменяем на доменное имя

Теперь файл с настройками выглядит так

server { listen 80; listen [::]:80; root /var/www/topbicycle.ru/html; index index.html index.htm index.nginx-debian.html; server_name topbicycle.ru www.topbicycle.ru; location / { try_files $uri $uri/ =404; } }

Теперь, чтобы создать ещё один сайт, назовём его heihei.ru , достаточно выполнить

sudo cp /etc/nginx/sites-available/topbicycle.ru /etc/nginx/sites-available/heihei.ru
sudo mkdir -p /var/www/heihei.ru/html
sudo cp -r /var/www/topbicycle.ru/html /var/www/heihei.ru/
sudo sed -i.bak 's/topbicycle/heihei/g' /var/www/heihei.ru/html/index.html
sudo sed -i.bak 's/topbicycle/heihei/g' /etc/nginx/sites-available/heihei.ru

sites-enabled

Следующий шаг после создания сайтов в sites-available - это добавление их в sites-enabled

Делается это с помощью создания ссылок

andrei@webserver:~$ sudo ln -s /etc/nginx/sites-available/topbicycle.ru /etc/nginx/sites-enabled/
andrei@webserver:~$ sudo ln -s /etc/nginx/sites-available/heihei.ru /etc/nginx/sites-enabled/

Проверка

andrei@webserver:~$ ll /etc/nginx/sites-enabled/

total 8 drwxr-xr-x 2 root root 4096 Nov 10 17:16 ./ drwxr-xr-x 8 root root 4096 Nov 10 17:26 ../ lrwxrwxrwx 1 root root 34 Nov 8 13:17 default -> /etc/nginx/sites-available/default lrwxrwxrwx 1 root root 36 Nov 10 17:16 heihei.ru -> /etc/nginx/sites-available/heihei.ru lrwxrwxrwx 1 root root 40 Nov 10 17:16 topbicycle.ru -> /etc/nginx/sites-available/topbicycle.ru

Также рекомендуют раскомментировать строку server_names_hash_bucket_size 64; в nginx.conf

vi /etc/nginx/nginx.conf

http { … server_names_hash_bucket_size 64; … }

Проверить корректность конфигурации

Чтобы проверить конфигурационные файлы на ошибки выполните

andrei@webserver:~$ sudo nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Статьи про Nginx
Nginx
Установка
nginx.conf

IT

Разное

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: