Как переместить Nginx Web Root в новое место в Ubuntu 16.04

Вступление

В Ubuntu по умолчанию веб-сервер Nginx хранит свои документы в + / var / www / html, который обычно находится в корневой файловой системе вместе с остальной частью операционной системы. Однако иногда полезно переместить корень документа в другое место, например в отдельную смонтированную файловую систему. Например, если вы обслуживаете несколько веб-сайтов из одного и того же экземпляра Nginx, размещение корневого документа каждого сайта в отдельном томе позволяет масштабировать в соответствии с потребностями конкретного сайта или клиента.

В этом руководстве мы покажем вам, как переместить корень документа Nginx в новое место.

Предпосылки

Для завершения этого руководства вам понадобится:

  • * Сервер Ubuntu 16.04 с пользователем без полномочий root с привилегиями + sudo + *. Вы можете узнать больше о том, как настроить пользователя с этими привилегиями, в нашей Initial Server Setup с Ubuntu 16.04 руководство.

  • * Веб-сервер Nginx *: если вы еще не настроили его, обратитесь к подробной статье, https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16. -04 [Как установить Nginx в Ubuntu 16.04], может помочь вам.

  • * Новое местоположение для корня вашего документа *: Новое местоположение корня документа полностью настраивается в зависимости от ваших потребностей. Если вы перемещаете корневой каталог документа на другое устройство хранения, вам нужно выбрать местоположение под точкой монтирования устройства. В этом примере мы будем использовать каталог + / mnt / volume-nyc1-01 +. Если вы используете блочное хранилище в DigitalOcean, this guide покажет вам, как смонтировать диск перед продолжением с этим уроком.

Шаг 1 - Копирование файлов в новое место

В новой установке Nginx корень документа находится по адресу + / var / www / html. Однако, если вы работаете с существующим сервером, у вас могут быть существенно отличающиеся настройки, включая несколько корней документов в соответствующих директивах блоков серверов.

Вы можете искать расположение дополнительных корней документа, используя + grep +. Мы будем искать в каталоге + / etc / nginx / sites-enabled +, чтобы ограничить наше внимание активными сайтами. Флаг + -R + гарантирует, что + grep + напечатает как строку с директивой + root +, так и имя файла в ее выводе:

grep "root" -R /etc/nginx/sites-enabled

Результат будет выглядеть примерно так, как показано ниже, хотя в существующей установке имена и количество результатов могут отличаться:

Output/etc/nginx/sites-enabled/default:       root /var/www/html;
/etc/nginx/sites-enabled/default:       # deny access to .htaccess files, if Apache's document root
/etc/nginx/sites-enabled/default:#      root /var/www/example.com;

Используйте обратную связь от + grep +, чтобы убедиться, что вы копируете нужные файлы и обновляете соответствующие файлы конфигурации.

Теперь, когда мы подтвердили местоположение нашего корневого документа, мы скопируем файлы в их новое местоположение с помощью + rsync +. Использование флага + -a + сохраняет разрешения и другие свойства каталога, в то время как + -v + предоставляет подробный вывод, чтобы вы могли следить за ходом процесса.

sudo rsync -av /var/www/

Теперь мы готовы обновить конфигурацию.

Шаг 2 - Обновление файлов конфигурации

Nginx использует как глобальные, так и специфичные для сайта файлы конфигурации. Для получения справочной информации об иерархии конфигурационных файлов, посмотрите на https://www.digitalocean.com/community/tutorials/how-to-configure-the-nginx-web-server-on-a-virtual-private-server Как настроить веб-сервер Nginx на виртуальном частном сервере.

Если вы работаете с существующей установкой, вам следует изменить файлы, которые вы нашли ранее, с помощью команды + grep +. В нашем примере мы рассмотрим файл конфигурации по умолчанию, называемый + default +.

Откройте файл в редакторе:

sudo nano /etc/nginx/sites-enabled/default

Затем найдите строку, которая начинается с + root +, и обновите ее, указав новое местоположение.

/ И т.д. / Nginx / сайты с поддержкой / по умолчанию

. . .
      # include snippets/snakeoil.conf;
      root ;


      # Add index.php to the list if you are using PHP


      index index.html index.htm index.nginx-debian.html;
      server_name _;
. . .

После внесения всех необходимых изменений сохраните и закройте файл.

Шаг 3 - Перезапуск Nginx

Закончив изменения конфигурации, вы можете убедиться в правильности синтаксиса с помощью этой команды:

sudo nginx -t

Если все в порядке, он должен вернуть:

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

Если тест не пройден, отследите и устраните проблемы.

После прохождения теста перезапустите Nginx:

sudo systemctl restart nginx

После перезапуска сервера посетите ваши уязвимые сайты и убедитесь, что они работают должным образом. Как только вы освоитесь, все в порядке, не забудьте удалить оригинальную копию данных.

sudo rm -Rf /var/www/html

Заключение

В этом уроке мы рассмотрели, как изменить корень документа Nginx на новое место. Это может помочь вам с базовым администрированием веб-сервера, таким как эффективное управление несколькими сайтами на одном сервере. Это также позволяет вам использовать преимущества альтернативных устройств хранения, таких как сетевое хранилище блоков, важный шаг в масштабировании веб-сайта по мере изменения его потребностей.

Если вы управляете загруженным или растущим веб-сайтом, вам может быть интересно узнать https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-with-http-2-support- on-ubuntu-16-04 [как настроить Nginx с HTTP / 2], чтобы воспользоваться его высокой скоростью передачи контента. Вы также можете узнать больше об улучшении производственного опыта в этом сравнении https://www.digitalocean.com/community/tutorials/5-ways-to-improve-your-production-web-application-server-setup[five улучшить настройку сервера вашего производственного веб-приложения.

Related