Полное пошаговое руководство по установке и настройке веб-сервера Nginx в системе Ubuntu 20.04
Nginx - это популярный обратный прокси-сервер с открытым исходным кодом, доступный на нескольких платформах. Программное обеспечение было разработано Игорь Сысоев в качестве решения проблемы C10K и впервые выпущен в 2004 году. Проблема C10K - это проблема одновременного обслуживания десяти тысяч клиентов, что было довольно непросто в начале 2000-х.
В этом руководстве мы рассмотрим, как установить и настроить Nginx в Ubuntu 20.04 LTS.
Предпосылки
Система с установленной Ubuntu 20.04 и судо
Пользователь. Кроме того, вам не нужно иметь никакого другого веб-сервера, такого как Apache, работающего на порте 80 или 443.
Установка Nginx
Nginx доступен в репозитории Ubuntu 20.04 и подходящий
для его установки можно использовать менеджер пакетов. Итак, чтобы установить Nginx, откройте терминал, используя ctrl + alt + t
и запустите:
sudo apt update && sudo apt install nginx
Установка скоро завершится, и демон Nginx автоматически запустится в фоновом режиме. Итак, чтобы проверить статус Nginx, запустите:
sudo systemctl статус nginx
После выполнения указанной выше команды вы должны получить статус Nginx как активный (работает)
зеленым цветом, как показано ниже.
Настройка брандмауэра Ubuntu (UFW)
По умолчанию исходящие порты HTTP (80) и HTTPS (443) закрыты в Ubuntu 20.04. Кроме того, демон брандмауэра по умолчанию ufw
отключен, так как все порты закрыты.
Таким образом, для доступа к серверу Nginx из других систем вам необходимо включить ufw
и настройте его правильно, чтобы разрешить трафик на порт 80
и 443
. Прежде чем включить ufw
, знайте, что если вы настраиваете Nginx на удаленном сервере, сначала обновите ufw
правила, позволяющие ssh
запустив:
sudo ufw разрешить ssh
Приведенная выше команда позволяет ssh
доступ к удаленному серверу без разрешения ssh
вы будете заблокированы для доступа к удаленному серверу.
После включения ssh
доступ, вы можете включить ufw
демон брандмауэра, запустив:
sudo ufw enable
Теперь вам нужно изменить правила брандмауэра, чтобы разрешить порты HTTP и HTTPS, чтобы Nginx мог обслуживать веб-трафик. Чтобы изменить правила, запустите:
sudo ufw разрешить 'Nginx Full'
Nginx Полный
разрешает порты HTTP и HTTPS для входящего и исходящего трафика со всех IP-адресов.
После этого проверьте, правильно ли добавлены правила в ufw
брандмауэр, выполнив команду:
sudo ufw статус
Приведенная выше команда выведет правила, которые мы добавили в ufw
демон брандмауэра.
Подключение к серверу Nginx
Теперь, когда мы установили Nginx и настроили ufw
чтобы разрешить входящий веб-трафик HTTP и HTTPS, вы должны иметь доступ к серверу Nginx, используя IP-адрес сервера.
Если вы не знаете IP-адрес сервера, используйте команду ниже, чтобы легко его получить.
ip addr show eth0 | grep inet | awk '{print $ 2; } '| sed 's /\/.*$//'
Получив IP-адрес, вставьте его в браузер и нажмите Enter.
// ваш-сервер-ip
Если все было настроено правильно, вы должны увидеть веб-страницу «Добро пожаловать в nginx!».
Файлы и каталоги Nginx
Теперь, когда у нас установлен и запущен Nginx на вашем сервере. Давайте взглянем на некоторые важные файлы и каталоги Nginx, которые вам придется использовать для настройки вашего веб-сайта / веб-приложения.
Контент веб-сервера
Вы можете настроить любое местоположение, которое будет корневым каталогом для вашего серверного блока. HTML-код Nginx по умолчанию: / var / www / html
, именно там находится страница приветствия, к которой мы обращались ранее.
Другие местоположения, которые обычно используются в качестве корневого каталога для доменов, включают:
/домой//
/ var / www / html /
/ opt /
Файлы конфигурации Nginx
Все файлы конфигурации Nginx находятся в / и т. д. / nginx
каталог. Давайте посмотрим на некоторые важные файлы, которые нам понадобятся для создания базового домена.
/etc/nginx/nginx.conf
: Этот файл содержит всю конфигурацию, необходимую для запуска Nginx./ и т.д. / nginx / сайты-доступные /
: В этом каталоге есть вся конфигурация серверных блоков доменов, но в настоящее время они не включены / не развернуты и, следовательно, недоступны для клиентов./ и т. д. / nginx / сайты-включенные /
: Этот каталог содержит активные / включенные домены, доступные клиентам. Чтобы включить домен, нам нужно связать файл конфигурации домена изсайты-доступные
ксайты с поддержкой
каталог./ и т. д. / nginx / фрагменты
/: В этом каталоге мы можем хранить потенциально повторно используемые сегменты конфигурации. Это экономит много времени в производственной среде за счет того, что позволяет повторно использовать сегменты / блоки конфигурации.
Журналы сервера
Nginx регистрирует события / действия и сохраняет их в файлах журнала в / вар / журнал / nginx
каталог. Nginx регистрирует действия в этих файлах:
/var/log/nginx/access.log
: Этот файл регистрирует клиентов, которые обращались к серверу Nginx. Подробная информация включает IP-адрес клиента, время и дату, браузер, используемый для доступа к серверу, и ОС./var/log/nginx/error.log
: Этот файл регистрирует ошибки, с которыми сталкивается сервер Nginx во время работы.
Итак, в этом разделе мы кратко рассмотрели некоторые важные файлы и каталоги Nginx, которых достаточно для начала.
Настройка серверных блоков
Теперь, когда у нас есть некоторые базовые знания о файлах и сервере Nginx, мы готовы настроить собственный серверный блок. Серверные блоки похожи на виртуальные хосты Apache.
Мы рассмотрим, как создать серверный блок, и продемонстрируем, что будем использовать example.com
как домен в процессе создания.
💡 Заменить example.com
с вашим доменным именем.
Прежде чем мы начнем настраивать серверные блоки, нам нужно создать каталог, который будет служить корневым каталогом для контента веб-сайта. Давайте создадим /var/www/example.com/html
каталог для домена, использующего mkdir
команда.
sudo mkdir -p /var/www/example.com/html
В -п
опция создаст все необходимые родительские каталоги. То есть создаст example.com
родительский каталог для html
если его не существует.
Измените владельца каталога с помощью $ USER
переменная окружения:
sudo chown -R $ USER: $ USER /var/www/example.com/html
Затем создайте простой index.html
файл, который будет доступен при посещении настраиваемого домена. Это только для пояснительных целей.
нано /var/www/example.com/html/index.html
Вставьте следующее содержимое в файл, который мы только что создали на сервере.
Добро пожаловать на example.com! Эй! Example.com доступен!
Нажмите ctrl + o
написать и сохранить index.html
файл, а затем нажмите ctrl + x
выходить нано
редактор.
Теперь, наконец, мы можем перейти к созданию серверного блока, чтобы Nginx мог обслуживать index.html
когда какой-то пользователь переходит в example.com
. Итак, чтобы создать серверный блок, нам нужно создать файл конфигурации с именем example.com
в сайты-доступные
каталог. Для этого используем nano и запускаем:
sudo nano /etc/nginx/sites-available/example.com
Затем введите или скопируйте / вставьте следующую конфигурацию. Затем нажмите ctrl + o
и введите, чтобы написать и сохранить. Аналогично нажмите ctrl + x
, чтобы закрыть редактор nano.
сервер {слушать 80; слушать [::]: 80; имя_сервера example.com www.example.com; корень /var/www/example-domain.com/html; index index.html; местоположение / {try_files $ uri $ uri / = 404; }}
Приведенная выше конфигурация аналогична конфигурации серверного блока по умолчанию, мы изменили корень
оператор, чтобы указать на наш новый корневой каталог и изменил имя сервера
на наше доменное имя. В то время как место расположения{}
Оператор служит оператором перехвата ошибок, если файлы не найдены, и отображает клиенту ошибку 404.
Затем мы можем включить наш серверный блок, чтобы Nginx обслуживал example.com
интернет страницы. Чтобы включить наш серверный блок, нам нужно создать символическую ссылку example.com
файл из сайты-доступные
к сайты с поддержкой
каталог. Для этого запустите:
sudo ln -s /etc/nginx/sites-available/example.com / etc / nginx / sites-enabled
Ссылка будет создана в сайт включен
каталог и сейчас example.com
должен быть включен. Теперь у нас есть два серверных блока, включенных на нашем сервере Nginx, которые будут отвечать на запрос на основе Слушать
и sever_name
директивы сохранены в example.com
конфигурация серверного блока.
Чтобы проверить правильность всех файлов конфигурации и отсутствие синтаксической ошибки, запустите:
sudo nginx -t
Теперь, наконец, перезапустите Nginx, чтобы применить изменения, выполнив следующую команду:
sudo systemctl перезапустить nginx
Nginx начнет обслуживать ваш серверный блок сейчас, вы можете перейти на // ваше-доменное-имя
и увидите свою веб-страницу вживую.
Примечание: Чтобы вышеуказанный раздел работал, вам необходимо настроить собственный домен и заменить example.com
с вашим собственным доменным именем. Кроме того, вам необходимо настроить DNS для своего домена, чтобы он указывал на IP-адрес вашего сервера Nginx.
В заключение мы рассмотрели, как установить Nginx, настроить ufw
чтобы разрешить удаленный доступ к серверу Nginx, подключенному к Nginx удаленно, ознакомился с некоторыми основными файлами и каталогами Nginx и научился настраивать блок сервера.
Чтобы узнать больше о Nginx, вы можете посетить вики-страницу Nginx.