Вступление
В 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 улучшить настройку сервера вашего производственного веб-приложения.