Отредактировано 3 Несколько недель назад от ExtremeHow Редакционная команда
ДебианNginxВеб-серверВеб-разработкаНастройка сервераЛинуксАдминистрирование системыОткрытый исходный кодКомандная строкаИТ
Перевод обновлен 3 Несколько недель назад
Nginx - это широко используемое программное обеспечение веб-сервера, известное своей высокой производительностью, стабильностью, низким потреблением ресурсов и простой конфигурацией. В этом подробном руководстве мы рассмотрим, как настроить веб-сервер с помощью Nginx на операционной системе Debian. Прежде чем мы перейдем к шагам, важно понять, что такое Nginx и почему он полезен для конфигурации веб-сервера.
Nginx (произносится как «энжин экс») - это программное обеспечение с открытым исходным кодом для веб-обслуживания, обратного проксирования, кэширования, балансировки нагрузки, потоковой передачи мультимедиа и многого другого. Он начался как проект для решения проблемы C10k - обработки десяти тысяч подключений одновременно. Сегодня Nginx популярен благодаря своей производительности и эффективности в управлении высокими нагрузками. Он может выступать в качестве обратного прокси-сервера для протоколов HTTP, HTTPS, SMTP, POP3 и IMAP, балансировщика нагрузки и HTTP-кэша, среди прочего. Будучи программным обеспечением с открытым исходным кодом, он бесплатен для использования и постоянно совершенствуется мировыми участниками.
Прежде чем начать, убедитесь, что у вас есть следующие вещи:
sudo
.Как только вы выполните эти предварительные требования, вы можете приступить к установке и настройке Nginx на вашем сервере Debian.
Первый шаг - убедиться, что ваш сервер обновлен последними пакетами. Обновленная система снижает проблемы совместимости и повышает безопасность. Используйте следующую команду, чтобы обновить свой сервер:
sudo apt update sudo apt upgrade
Команда apt update
обновляет список пакетов и их доступные версии. Команда apt upgrade
обновляет старые пакеты до новых версий.
Пакетный менеджер APT в Debian делает установку программных пакетов, таких как Nginx, легкой. Выполните следующую команду, чтобы установить Nginx:
sudo apt install nginx
Эта команда получит и установит пакет Nginx и его зависимости. После завершения установки Nginx автоматически начнет работать.
После установки Nginx необходимо убедиться в его правильной установке и работе. Используйте следующую команду, чтобы проверить статус Nginx:
sudo systemctl status nginx
Ожидаемый вывод показывает, что Nginx активен и работает. Если вы хотите запустить или остановить службу Nginx, вы можете использовать:
sudo systemctl start nginx sudo systemctl stop nginx
После подтверждения того, что Nginx работает, откройте веб-браузер и найдите IP-адрес вашего сервера. Если вы не знаете IP-адрес вашего сервера, вы можете выяснить его следующим образом:
hostname -I
Когда вы вводите IP-адрес вашего сервера в адресную строку браузера, вы должны увидеть страницу приветствия Nginx по умолчанию. Это подтверждает, что Nginx корректно отображает веб-страницы.
На системах Debian UFW (Uncomplicated Firewall) часто используется как программное обеспечение для управления firewall. Если UFW работает на вашем сервере, необходимо разрешить HTTP-трафик для публичного доступа к вашему веб-серверу через firewall. Вы можете проверить текущий статус UFW следующим образом:
sudo ufw status
Если UFW активирован, используйте эту команду, чтобы разрешить HTTP-трафик Nginx:
sudo ufw allow 'Nginx HTTP'
Дважды проверьте ситуацию, чтобы убедиться, что применены соответствующие правила:
sudo ufw status
Nginx работает как служба в фоновом режиме. Вы можете управлять этой службой с помощью команды systemctl. Вот несколько полезных команд systemctl для управления Nginx:
sudo systemctl start nginx
: Запускает службу Nginx.sudo systemctl stop nginx
: Останавливает службу Nginx.sudo systemctl restart nginx
: Перезапускает службу Nginx. Используйте это после внесения изменений в конфигурационные файлы или разрешения незначительных проблем.sudo systemctl reload nginx
: Перезагружает Nginx без обрыва соединений. Полезно для применения изменений без прерывания работы пользователей.sudo systemctl enable nginx
: Устанавливает автоматический запуск Nginx при загрузке.sudo systemctl disable nginx
: Предотвращает автоматический запуск Nginx при загрузке.Файлы конфигурации Nginx обычно расположены в каталоге /etc/nginx
. Основной конфигурационный файл - это /etc/nginx/nginx.conf
, который содержит инструкции по управлению модулями, установке прав пользователей и другое.
Часто управление конфигурацией виртуальных хостов осуществляется отдельно в каталоге /etc/nginx/sites-available
. Этот каталог содержит конфигурационные файлы для отдельных доменов, которые ссылаются на /etc/nginx/sites-enabled
для активации. Вы также можете найти фрагменты конфигурации в /etc/nginx/snippets
для многоразовых настроек.
Server blocks, эквивалент виртуальных хостов Apache, позволяют Nginx запускать несколько сайтов на одном сервере. Сначала перейдите в /etc/nginx/sites-available/
и создайте новый конфигурационный файл:
sudo nano /etc/nginx/sites-available/example.com
В следующем конфигурационном файле замените "example.com" на ваше доменное имя:
server { listen 80; server_name example.com www.example.com; location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
С этой настройкой запросы к 'example.com' будут направляться к приложению, работающему на 127.0.0.1:8080. Используйте разумные значения по умолчанию или настройте конфигурацию в соответствии с вашими потребностями.
Создайте символическую ссылку на ваш конфигурационный файл в sites-enabled
:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Это действие активирует ваш server block. Проверьте новую конфигурацию, чтобы обнаружить возможные ошибки:
sudo nginx -t
Если ошибок нет, перезапустите Nginx, чтобы применить изменения:
sudo systemctl restart nginx
Вы можете протестировать настройку, создав базовый статический HTML-файл. Создайте новый каталог, который будет действовать как ваш веб-корень:
sudo mkdir -p /var/www/example.com/html
Установите соответствующие разрешения:
sudo chown -R $USER:$USER /var/www/example.com/html
Создайте простой HTML-файл:
nano /var/www/example.com/html/index.html
Добавьте следующее содержание в index.html
:
<!DOCTYPE html> <html> <head> <title>Welcome</title> </head> <body> <h1>Welcome to example.com!</h1> </body> </html>
Перейдите по адресу http://your_server_ip
или http://example.com
, чтобы просмотреть ваш веб-сайт.
Для защиты вашего веб-сервера рекомендуется внедрить SSL/TLS-сертификат для сайта. Бесплатные SSL-сертификаты можно получить у Let's Encrypt, центра сертификации, предлагающего бесплатные сертификаты с поддержкой автоматизации.
Установите утилиту Certbot и плагин Nginx для поиска и установки SSL-сертификатов:
sudo apt install certbot python3-certbot-nginx
Затем запросите сертификат с помощью Certbot:
sudo certbot --nginx
Certbot запросит необходимую информацию, такую как ваше доменное имя и электронная почта. После успешного завершения Certbot автоматически перезагружает Nginx. Посетите https://example.com
, чтобы подтвердить безопасное HTTPS-соединение с иконкой замка.
Certbot настраивает системную задачу для автоматического управления продлениями SSL-сертификатов. Вы также можете выполнить ручную проверку продления:
sudo certbot renew --dry-run
Проверьте обновление и убедитесь, что оно выполнено успешно без ошибок.
После настройки Nginx вы теперь можете размещать и обслуживать различные веб-сайты. Не забывайте следить за производительностью сервера, управлять журналами и обновлять пакеты Nginx и сервера для поддержания безопасности и эффективности. Веб-сервер Nginx - мощный инструмент, подходящий для множества веб-задач и потребностей архитектуры.
Настройка веб-сервера с Nginx на Debian включает в себя определение конфигурации, добавление server blocks и обеспечение безопасности с помощью SSL. Понимание основ установки, конфигурации и управления Nginx закладывает основу для более сложных приложений и развертывания сервисов. Теперь у вас должен быть работающий веб-сервер, готовый обслуживать страницы или приложения с высокой эффективностью.
Если вы найдете что-то неправильное в содержании статьи, вы можете