Установка Nginx, запуск
Устанавливаем Nginx
Nginx доступен в стандартных репозиториях Ubuntu 24.4 поэтому его просто обновляем и устанавливаем. Если вы под root то без sudo.
sudo apt update && sudo apt install nginx -y
Проверить установленную версию Nginx.
nginx -v Проверить статус работы Nginx
sudo systemctl status nginx
Запущен и работает если Active: active (running)
Добавление Nginx в автозагрузку, чтобы при перезапуске сервера стартовал автоматически.
sudo systemctl enable nginx
Вводи команду и проверяем работу Nginx
curl -I http://localhost
Она должна вернуть ответ HTTP/1.1 200 OK
Открываем порты во встроенном файрволе Ubuntu (UFW)
Разрешите Nginx принимать трафик
sudo ufw allow 'Nginx Full'Но на свежеустановленном Nginx настроен только HTTP (порт 80).
Пишем в браузере http://IP_ВАШЕГО_СЕРВЕРА
И видим приветствующий нас заголовок.
Welcome to nginx!
Поздравляю вы установили и запустили Nginx
Если страница не открылась.
Обновите правила и проверьте статус файрвола:
sudo ufw reload
sudo ufw status
Основные пути для работы:
- /var/www/html — корневая папка для файлов вашего сайта.
- /etc/nginx/nginx.conf — главный конфигурационный файл.
- /etc/nginx/sites-available/ — папка для создания конфигураций (виртуальных хостов) отдельных сайтов.
Остановить nginx
sudo systemctl stop nginx
Или если нужно, подключаем репозиторий.
Не рекомендуется, а лишь при большой не обходимости.
add-apt-repository ppa:nginx/stable
Следующая команда устанавливает расширенную версию Nginx с большим набором встроенных сторонних модулей, так же устанавливайте при большой необходимости.
sudo apt-get install nginx nginx-extras
Nginx с Apache

Если вы уже работаете на веб-сервере Apache, то при попытке запустить Nginx они неизбежно вступят в конфликт.
Проблема в том, что оба сервера по умолчанию пытаются занять один и тот же сетевой
порт :80 (для обычного веб-трафика).
Два приложения не могут одновременно слушать один и тот же порт, поэтому Nginx выдаст ошибку.
nginx[8112]: nginx: [emerg] listen() to [::]:80, backlog 511 failed (98: Address already in use)
nginx: [emerg] still could not bind()
systemd[1]: nginx.service: Control process exited, code=exited status=1
systemd[1]: Failed to start A high performance web server and a reverse proxy server.
systemd[1]: nginx.service: Unit entered failed state.
systemd[1]: nginx.service: Failed with result 'exit-code'.
dpkg: error processing package nginx (--configure):
dependency problems — leaving unconfigured
Errors were encountered while processing:
nginx-full
nginx
E: Sub-process /usr/bin/dpkg returned an error code (1)
Если вы обновили сайт или пишите без использования Апачи,
Apache можно удалить.
В ином случае так как Nginx будет принимать запрос при подключении HTTP, то есть будет первым, Apache следует перенести на другой порт.
Заходим в настройки портов
udo nano /etc/apache2/ports.conf
Найдите строку
Listen 80
и замените её, например, на
Listen 8080Измените порт в дефолтном виртуальном хосте или в подключенном файле с вашим домен.conf:
sudo nano /etc/apache2/sites-enabled/000-default.conf
Замените
<VirtualHost *:80>
на
<VirtualHost *:8080>
Перезапускаем Апачи с обновленными портами
sudo systemctl restart apache2
Запускаем Nginx
sudo systemctl start nginx
