Отредактировано 1 Неделю назад от ExtremeHow Редакционная команда
NginxУбунтуСерверЛинуксВеб-серверУстановкаКонфигурацияОперационные системыСистемаНастройка
Перевод обновлен 1 Неделю назад
Добро пожаловать в это руководство по установке и настройке Nginx на сервере Ubuntu. В этой подробной статье мы рассмотрим каждый шаг в деталях, объясняя процесс от установки до настройки, включая различные модули и параметры, которые можно настроить в соответствии с вашими требованиями. Nginx известен своей высокой производительностью, стабильностью, богатым набором функций, простой конфигурацией и низким потреблением ресурсов, что делает его популярным выбором для веб-серверов. Давайте перейдем к шагам по запуску Nginx на вашей системе Ubuntu.
Nginx (произносится как "энджин экс") — это высокопроизводительный HTTP-сервер и обратный прокси-сервер, а также прокси-сервер IMAP/POP3. Он был разработан для обработки большого количества одновременных подключений, что означает его высокую эффективность при обслуживании статического контента и предоставлении функций балансировки нагрузки. Nginx — это программное обеспечение с открытым исходным кодом, что означает, что его можно использовать, изменять и распространять бесплатно.
Перед установкой Nginx у вас должен быть сервер с установленной Ubuntu. Это руководство предполагает наличие следующего:
Убедитесь, что ваш сервер обновлен с последними пакетами программного обеспечения, для этого выполните следующее: sudo apt update && sudo apt upgrade
.
Чтобы установить Nginx, ваш диспетчер пакетов должен быть обновлен. Вы будете использовать apt
, который является диспетчером пакетов по умолчанию для Ubuntu. Выполните следующие шаги:
sudo apt update
sudo apt install nginx
Первая команда обновляет список пакетов. Вторая команда устанавливает Nginx. После установки Nginx запускается автоматически. Чтобы проверить, что Nginx работает, вы можете использовать команду: systemctl status nginx
. Если служба активна и работает, вы должны увидеть соответствующее сообщение.
По умолчанию Nginx регистрируется с ufw
, который является инструментом настройки брандмауэра. С помощью ufw
можно управлять открытыми портами HTTP и HTTPS. Запустите:
sudo ufw app list
Вы должны увидеть список профилей Nginx. Предоставьте полный доступ Nginx Full
, используя следующую команду:
sudo ufw allow 'Nginx Full'
Затем проверьте изменения, проверив статус брандмауэра: sudo ufw status
, чтобы убедиться, что трафик разрешен на нужных портах.
Теперь, когда Nginx работает и брандмауэр настроен, вы можете просмотреть страницу по умолчанию веб-сервера. Откройте веб-браузер и перейдите по публичному IP-адресу вашего сервера. Если Nginx настроен правильно, вы должны увидеть страницу "Welcome to Nginx!". Чтобы узнать публичный IP вашего сервера, вы можете использовать:
curl -4 icanhazip.com
Важно знать структуру каталогов, где установлен Nginx, в первую очередь в /etc/nginx
. Основные каталоги и файлы включают в себя:
nginx.conf
: основной файл конфигурации.sites-available
: где хранятся все конфигурации блоков серверов.sites-enabled
: каталог, содержащий символические ссылки на файлы, включенные в sites-available
.Изменения конфигурации обычно следует делать в nginx.conf
или создавая новые файлы в sites-available
.
Файл nginx.conf
является основным файлом конфигурации для Nginx. Простые задачи могут потребовать редактирования его напрямую, но для конкретных изменений, связанных с размещаемыми сайтами, используйте файлы блоков сервера. Давайте создадим новый файл блока сервера для домена с именем example.com
. Внутри /etc/nginx/sites-available/
:
sudo nano /etc/nginx/sites-available/example.com
Добавьте следующую конфигурацию:
server {
listen 80;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ =404;
}
}
Чтобы включить файл, создайте символическую ссылку на директорию sites-enabled
:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Чтобы проверить, правильно ли настроена конфигурация:
sudo nginx -t
Если успешно, перезагрузите Nginx:
sudo systemctl reload nginx
Этот пример только обслуживает статические файлы из каталога, предполагая, что они находятся в /var/www/html
под корнем Nginx по умолчанию.
Блоки сервера позволяют размещать несколько доменов на одном сервере. Конфигурационный файл каждого домена должен находиться в sites-available
, а символическая ссылка в sites-enabled
. Пример блока сервера:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
}
Создайте структуру каталогов:
sudo mkdir -p /var/www/example.com/html
Укажите права доступа и создайте пример HTML страницы:
sudo chown -R $USER:$USER /var/www/example.com/html
sudo chmod -R 755 /var/www/example.com
echo '<h1>Hello World!</h1>' > /var/www/example.com/html/index.html
Не забудьте создать символическую ссылку и проверить конфигурацию, затем перезагрузите Nginx.
Для обеспечения безопасности трафика к и от вашего сервера важно реализовать SSL/TLS. Let's Encrypt предлагает бесплатные SSL-сертификаты. Начните с установки Certbot, клиента Let's Encrypt:
sudo apt install certbot python3-certbot-nginx
Certbot может автоматически настроить SSL для Nginx; выполните:
sudo certbot --nginx -d example.com -d www.example.com
Во время процесса необходимо указать адрес электронной почты и согласиться с условиями обслуживания. Certbot управляет изменениями в конфигурации Nginx для обслуживания контента через HTTPS.
Сертификаты Let's Encrypt истекают каждые 90 дней. Настройте задание cron для автоматического продления сертификатов. Откройте crontab:
sudo crontab -e
Добавьте:
0 3 * * * /usr/bin/certbot renew --quiet
Это выполнит команду продления каждый день в 3 часа утра.
Для сайтов с высоким трафиком важна оптимизация производительности. Некоторые стратегии оптимизации:
/etc/nginx/nginx.conf
увеличьте, установив: worker_processes auto;
и worker_connections 1024;
.gzip on;
Рассмотрите возможность использования инструментов, таких как New Relic или Datadog, для мониторинга производительности Nginx.
Поздравляем, вы установили и настроили Nginx на Ubuntu! Вы узнали, как обслуживать несколько доменов, обезопасить свой сайт с помощью SSL и оптимизировать конфигурацию для повышения производительности. Поскольку возможности и модули Nginx столь богаты, изучение его документации дальше может дать вам множество дополнительных и интересных возможностей. Продолжайте экспериментировать, и вскоре вы будете управлять высоко оптимизированным веб-сервером.
Если вы найдете что-то неправильное в содержании статьи, вы можете