- Настраиваем Firewall
- Настройка mod_fastcgi
- Команды управления Nginx-сервером
- Настройки блоков server
- Настройка веб-сервера Nginx
- Подготовка
- Настройка UFW
- Команды для управления сервером NGINX
- Проверка работы веб-сервера
- Настройка брандмауэра
- Настройка Nginx для работы с Apache
- Требования
- Настройка виртуального хоста
- Знакомимся с важными файлами и директориями Nginx
- Настройка Nginx
- Устанавливаем Nginx
- Тестирование Nginx
- Работа с nginx
- Настройка фаервола
- Настройка Nginx
- Что нужно для установки
- Тестирование веб-сервера NGINX
- Важные директории и файлы настроек Nginx
- Виртуальные хосты Apache
- Настройка веб-сервера Nginx
- Установка компонентов
- Поэтапная настройка NGINX
- Настройка Nginx Server Blocks
- Настройка сжатия Gzip
- Установка Nginx
- Проверяем веб-сервер
- Установка NGINX на Ubuntu 20
- Установка nginx
- Проверьте состояние службы NGINX
- Просмотр статистики
- Установка Nginx
Настраиваем Firewall
Перед тем, как начать тестирование Nginx, необходимо перенастроить Firewall для того, чтобы обеспечить доступ к приложению. Nginx регистрируется как приложение с профилем ufw, поэтому разрешить доступ Nginx достаточно легко.
Для начала нам нужно вывести список названий всех приложений с профилем ufw:
Вы увидите такой список:
Output Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH
Как вы видите, существует три возможных профиля для Nginx:
Nginx Full: профиль открывает два порта – 80 (обычный, незашифрованный веб-трафик) и 443 (TLS/SSL зашифрованный трафик)
Nginx HTTP: профиль открывает только порт 80
Nginx HTTPS: профиль открывает только порт 443
Рекомендуется включать наиболее ограниченный профиль, который позволит пропускать только тот трафик, который вы настроили. Так как на данный момент SSL-протокол еще не настроен, нам нужно открыть только порт 80 для обычного трафика.
Для этого введите команду:
$ sudo ufw allow 'Nginx HTTP'
И подтвердите изменения:
Вы увидите следующие данные, касающиеся разрешенного трафика:
Output Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)
Настройка mod_fastcgi
В данном разделе нужно будет настроить модуль mod_fastcgi для корректной обработки веб-сервером страниц, написанных на PHP.
Сначала необходимо будет отключить модуль mod_php:
$ sudo a2dismod php7.4
После этого необходимо включить mod_action, и сохранив существующий файл FastCGI под другим именем, и создайте новый fastcgi.conf:
$ sudo a2enmod actions
$ cd /etc/apache2/mods-enabled
$ sudo mv fastcgi.conf fastcgi_old.conf
$ sudo nano fastcgi.confСледующий текст вставьте в созданный файл:
<IfModule mod_fastcgi.c>
AddHandler fastcgi-script .fcgi
FastCgiIpcDir /var/lib/apache2/fastcgi
AddType application/x-httpd-fastphp .php
Action application/x-httpd-fastphp /php-fcgi
Alias /php-fcgi /usr/lib/cgi-bin/php-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php-fcgi -socket /run/php/php7.4-fpm.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>Закройте файл сохранив изменения и протестируйте Apache на корректность синтаксиса:
$ sudo apachectl -tНижеуказанную ошибку следует проигнорировать:

Главное, что проверка сообщила, что Syntax OK. Это значит, что необходимо перезапустить сервис Apache:
$ sudo systemctl reload apache2Далее, в папке /var/www/html нужно создать файл, который будет открывать страницу конфигурации PHP:
$ cd /var/www/html
$ sudo nano info.phpВ этот файл необходимо вставить следующую фунцию:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.phpТеперь выполните настройку брандмауэра вашего VPS, которая позволит открыть доступ к нему по порту 8080:
$ sudo ufw allow 8080А также, включите на UFW разрешение для Apache:
$ sudo ufw allow "Apache Full"Проверьте статус, в котором находится ваш UFW:
$ sudo ufw status



Команды управления Nginx-сервером
Чтобы остановить web-сервер, вводим:
$ sudo systemctl stop nginx
Для старта используем команду:
$ sudo systemctl start nginx
Для перезапуска Nginx после остановки, вводим:
$ sudo systemctl restart nginx
Во время загрузки Ubuntu, сервер Nginx стартует автоматически по умолчанию. Отключить запуск по умолчанию можно следующим образом:
$ sudo systemctl disable nginx
Чтобы при внесении изменений в конфигурации веб-сервера, его можно было перезагрузить, не теряя соединений. Для этого вводим команду:
$ sudo systemctl reload nginx
Для возобновления запуска Nginx при старте вводим:
$ sudo systemctl enable nginx
Настройки блоков server
$ sudo mkdir -p /var/www/primer.ru/html $ sudo mkdir -p /var/www/primer2.ru/html
$ sudo chown -R $USER:$USER /var/www/primer.ru/html $ sudo chown -R $USER:$USER /var/www/primer2.ru/html
Теперь перейдем к созданию страниц для сайтов:
$ nano /var/www/primer.ru/html/index.html $ nano /var/www/primer2.ru/html/index.html
Мы рекомендуем Вам скопировать в созданные файлы пример страницы сайта, который Вы видите ниже:
<html> <head> <title>Добро пожаловать на primer.ru!</title> </head> <body> <h1>Все отлично! Блок server сайта primer.ru работает корректно.</h1> </body> </html>
Следующим шагом будет создание блоков server. Для этого выполните следующую команду:
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/primer.ru
И затем откройте этот файл, используя root-права, и добавьте следующий текст:
server {
listen 80;
listen [::]:80;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
}Настройки, которые Вы здесь видите, имеют следующие функции:
- listen — определяет IP-адрес и порт, а также может указывать путь для UNIX-сокета;
- root — определяет, какой каталог будет использоваться для запросов;
- index — задает, какие файлы будут использоваться в качестве индекса;
- server_name — имя виртуального сервера;
- location — задает конфигурацию в зависимости от URI-запроса. Этот параметр может быть задан как префиксной строкой, так и регулярным выражением. В данном случае try_files обозначает, что для обработки запроса будет использоваться первый найденный файл ($uri); обозначить каталог Вы можете при помощи косой черты ($uri/); если же ни один из данных файлов не будет найден, то идет перенаправление на последний параметр.
В данном файле Вам нужно отредактировать следующие настройки.
В root запишите путь к каталогу с Вашим сайтом:
root /var/www/primer.ru/html;
Также Вы меняете server_name, при этом нужно обязательно указать доменное имя своего сайта:
server_name primer.ru www.primer.ru;
$ sudo ln -s /etc/nginx/sites-available/primer.ru /etc/nginx/sites-enabled/
Для того, чтобы предотвратить конфликт нового блока с блоком по умолчанию (default), его необходимо отключить:
$ sudo rm /etc/nginx/sites-enabled/default
А затем раскомментировать строку (убрать спецсимвол) server_names_hash_bucket_size 64; в файле /etc/nginx/nginx.conf.
Далее давайте перейдем к настройкам проксирования. Размер буфера для проксируемых запросов должен быть не меньше, чем ожидаемый размер ответа от сервера:
proxy_buffers 8 64k; proxy_intercept_errors on; proxy_connect_timeout 1s; proxy_read_timeout 3s; proxy_send_timeout 3s;
Следующим шагом необходимо установить кодировку отдачи:
Включите SSI и установите, чтобы SSI-переменные резервировали не более 1 Кбайта:
ssi on; ssi_value_length 1024;
server { location / { root /data/www; }
location /images/ { root /data; }
}В данном случае первый блок location имеет путь для запросов (root) — конечный путь к запрашиваемому файлу будет формироваться путем добавления URI из запроса к пути из директивы root. При совпадении этого пути в нескольких блоках location будет выбран путь, имеющий самый длинный префикс (он задается косой чертой “/”).
Второй блок, который мы настроили, дает совпадение с запросами, начинающимися с /images/.
Также блок location используется при настройке прокси-сервера. Для этого в первом блоке нужно прописать параметры директивы proxy_pass, а именно протокол и адрес проксируемого сервера:
location / { proxy_pass http://localhost:8080; }Вы можете использовать этот параметр для задания пути к веб-серверу Apache на порту 9999:
location / {
proxy_pass 127.0.0.1:9999;
}При этом при использовании NGINX как прокси-сервера Вы можете задать множество разных параметров, к примеру, proxy_read_timeout, который определяет таймаут при чтении ответа прокси-сервера, или proxy_send_timeout, который определяет таймаут при передаче запроса.
Вы также можете настроить NGINX так, чтобы он перенаправлял запросы на FastCGI-серверы. Для этого вместо директивы proxy_pass Вам нужно использовать директиву fastcgi_pass, а также директиву fastcgi_param, в которой задается параметр, который затем будет передаваться FastCGI-серверу:
server { location / { fastcgi_pass localhost:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; }В этом случае файл SCRIPT_FILENAME определяет имя скрипта, а QUERY_STRING — параметры запроса.
$ sudo service nginx restart
Настройка веб-сервера Nginx
Здесь важно понимать, что Nginx использует интерфейс межсетевого экрана Uncomplicated FireWall (UFW), поэтому первым делом нужно произвести настройку брандмауэра Ubuntu. Доступные приложения, о которых знает UFW, можно увидеть набрав в командной строке:
$ sudo ufw app list
В нашем случае имеет смысл разрешить трафик HTTP. Для этого необходимо ввести:
$ sudo ufw allow 'Nginx HTTP'Не будет лишним увидеть статус UFW после произведённых манипуляций:
$ sudo ufw status
И, наконец, чтобы проверить статус установленного веб-сервера, используйте следующую инструкцию:
$ systemctl status nginx

Если всё сделано верно, браузер должен показать стартовую страницу Nginx:

Подготовка
Перед началом установки Nginx заходим в ОС под пользователем root, и создаем новый аккаунт с расширенными привилегиями sudo.
Вводим следующую команду*:
adduser host
* Здесь «host» – имя пользователя, под которым будем работать.
Далее вбиваем свою информацию об аккаунте или принимаем настройки по умолчанию, нажав «Enter».
Настройка доступа в учетную запись созданного пользователя зависит от того, какая используется root-аутентификация. Это может быть просто пароль, либо же SSH-ключи.
Если вход выполняется под паролем, то подключиться к новому пользователю можно по SSH*:
ssh host@194.61.0.6
*IP сервера в примере () следует заменить на актуальный.
Когда вход в учетную запись осуществляется при помощи SSH-ключей, тогда их необходимо скопировать в созданный аккаунт. Для этого нужно следовать следующему алгоритму:
- Открыть терминал и ввести команду:
rsync --archive --chown= host: host ~/.ssh /home/ host
- Добавить созданного пользователя в группу sudo:
usermod -aG sudo host
- Авторизоваться под новым пользователем.
Инсталляцию будем выполнять прямо из репозитория Ubuntu, посредством пакетного менеджера apt:
$ sudo apt update $ sudo apt install nginx
По завершению исполнения команд, обновление и установка Nginx на сервере будет окончена.
Настройка UFW
Перед предоставлением доступа к сервису, следует настроить файрвол.
Для просмотра приложений, с которыми будет взаимодействовать UFW, вводим следующую команду:
$ sudo ufw app list
Будет выведена следующая информация:

Это означает, что UFW может работать с тремя вариантами протоколов веб-сервера:
- Full – открыты два порта (80 и 443).
- HTTP – открыт только 80 порт.
- HTTPS – открывается только 443 порт.
Пока не настроен SSL протокол, открываем 80 порт. Вводим команды:
$ sudo ufw allow 'Nginx HTTP'
Чтобы не потерять доступ по SSH, вводим команду:
$ sudo ufw allow ssh $ sudo ufw enable
Будет выведено предупреждение:
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Нужно согласиться (нажать «y»).
$ sudo ufw status
На экране будет выведено:
Status: active To Action From -- ------ ---- Nginx HTTP ALLOW Anywhere 22/tcp ALLOW Anywhere Nginx HTTP (v6) ALLOW Anywhere (v6) 22/tcp (v6) ALLOW Anywhere (v6)
HTTP протокол открыт.
Команды для управления сервером NGINX
Рассмотрим основные команды, которые можно использовать для управления сервером NGINX.
Остановить веб-сервер NGINX:
$ sudo service nginx stop
Запустить NGINX после остановки:
$ sudo service nginx start
Перезапустить (остановить и запустить снова) одной строкой:
$ sudo service nginx restart
Автоматически перезапускать NGINX после перезагрузки сервера:
$ sudo update-rc.d nginx defaults
Если эта опция включена по умолчанию, Вы увидите примерно следующее сообщение в консоли:
System start/stop links for /etc/init.d/nginx already exist.
Мы надеемся, что информация в этой статье оказалась для Вас полезной и помогла справиться с установкой и настройкой веб-сервера NGINX. В следующей статье мы расскажем о том, как правильно установить и настроить веб-сервер Apache.
Если у Вас возникли вопросы, спрашивайте в комментариях, мы будем рады Вам помочь.

Проверка работы веб-сервера
В конце установки Ubuntu 18.04 запустит nginx. Веб-сервер уже должен работать.
Это можно проверить следующей командой:
Вывод будет выглядеть примерно так:
nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) since Fri 2018-04-20 16:08:19 UTC; 3 days agoMain PID: 2369 (nginx)Tasks: 2 (limit: 1153) ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─2380 nginx: worker process
Как можно увидеть выше, служба успешно запущена. Однако лучший способ проверить — это запросить страницу.
Если вы его не знаете, то есть следующие варианты выяснить:
Введите в командной строке:
Вы увидите несколько строк — попробуйте каждую из них в браузере.
Должна загрузиться приветственная страница nginx:

Если она высветилась, значит, сервер работает правильно.
Настройка брандмауэра
Установка и настройка брандмауэра позволит закрыть все порты, кроме необходимых нам — 22 (SSH), 80 (HTTP), 443 (HTTPS). Первый протокол необходим для подключения к удаленному серверу. Второй и третий необходим для связи между клиентом и сайтом. Главное их отличие в том, что HTTPS — это зашифрованный HTTP. Шифрование данных происходит благодаря SSL-сертификату.
Установим утилиту UFW:
sudo apt install ufwПосле успешной установки добавим веб-сервер в список доступных приложений брандмауэра:
sudo nano /etc/ufw/applications.d/nginx.iniЗаполним файл следующим образом:
Проверим список доступных приложений:
sudo ufw app listЕсли среди них есть веб-сервер, значит всё сделано верно. Теперь нужно запустить брандмауэр и разрешить передачу трафика по вышеуказанным портам:
sudo ufw enable
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'Чтобы проверить изменения, вводим команду:
sudo ufw statusЕсли всё сделано правильно, то в статусе будут перечислены все порты, которые нам необходимы.
Настройка Nginx для работы с Apache
Далее, необходимо создать дополнительный хост, работающий под Nginx, который будет перенаправлять запросы на веб-сервер Apache.
Для этого наберите:
$ sudo nano /etc/nginx/sites-available/apacheserver {
listen 80;
server_name ap1.site www.ap1.site ap2.site www.ap2.site;
location / {
proxy_pass http://X.X.X.X:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Закройте файл с сохранение изменений.
Создайте ссылку командой:
$ sudo ln -s /etc/nginx/sites-available/apache /etc/nginx/sites-enabled/apacheЗапустите тест сервиса на корректность:
$ sudo nginx -tИ в случае, если тест ошибок не нашёл, перезагрузите Nginx:
$ sudo systemctl reload nginxТеперь, если вы в браузере откроете ссылку http://ap1.site/info.php, браузер вернёт вам страницу конфигурации PHP.
Таким образом, вы настроили Nginx как обратный прокси для Apache.
Требования
Перед тем, как приступить к установке, у вас должен быть создан пользователь с sudo привилегиями.
Как только вы создадите такой аккаунт, авторизуйтесь в качестве этого пользователя перед выполнением следующих шагов.

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Настройка виртуального хоста
На Nginx можно использовать серверные блоки для обслуживания нескольких доменов. Изначально у этого веб-сервера включен один виртуальный хост. Его файлы находятся в каталоге . Однако, это неудобно при размещении нескольких сайтов.
Чтобы это исправить в директории создадим каталог. В данном примере будем использовать условный домен «exemple.com», который нужно будет заменить своим доменом.
Начнем с создания каталога:
$ sudo mkdir -p /var/www/example.com/html
$ sudo chown -R $USER:$USER /var/www/example.com/html
Далее создадим пример страницы index.html:
$ snano /var/www/example.com/html/index.html
Вставим следующий код в файл:
<html> <head> <title>Welcome to Example.com!</title> </head> <body> <h1>Success! The example.com server block is working!</h1> </body> </html>
Затем создадим каталог – «sites-available» (директория, в которой хранятся серверные блоки):
$ sudo nano /etc/nginx/sites-available/example.com
Впишем в него код, указав свой каталог и домен:
server {
listen 80;
listen [::]:80;
root /var/www/example.com/html;
index index.html index.htm index.nginx-debian.html;
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/
Теперь настроены, и задействованы два виртуальных хоста. По умолчанию запросы, поступившие на 80 порт будут обрабатываться первым хостом, если они не соответствуют «www.example.com» или «example.com».
Для предотвращения различных сбоев с памятью, из-за дополнительных серверных имен, отредактируем файл .
В открывшемся файле ищем строку:
$ sudo nano /etc/nginx/nginx.conf
Убираем символ «#», сохраняем и закрываем.
Теперь выполним проверку файлов Nginx на отсутствие синтаксических ошибок:
$ sudo nginx -t
Чтобы изменения вступили в силу, перезапускаем Nginx:
$ sudo systemctl restart nginx
Для проверки корректной работы домена введем в браузере ссылку «http://example.com». Если все настройки выполнены правильно, мы увидим следующую надпись:

Ошибки, которые будут возникать в процессе работы сервера Nginx, можно посмотреть в файле .
/var/log/nginx/error.log
Все запросы, поступающие к вашему web-серверу, будут записываться в файле .
/var/log/nginx/access.log
Знакомимся с важными файлами и директориями Nginx
- /var/www/html: фактический веб-контент, который по умолчанию состоит только из приветственной страницы Nginx (вы видели ее ранее), находится в директории /var/www/html. Вы можете поменять это, изменив конфигурационные файлы Nginx.
- /etc/nginx: конфигурационная директория Nginx. Все файлы настроек Nginx находятся именно здесь.
- /etc/nginx/nginx.conf: основной конфигурационный файл Nginx. Используйте его, если хотите внести какие-либо изменения в общую конфигурацию Nginx.
- /etc/nginx/sites-available: в этой директории хранятся все серверные файлы для каждого сайта. Nginx не будет использовать конфигурационные файлы в этой директории до тех пор, пока они не связаны с директорией включенных сайтов (ее адрес ниже). Иными словами, в этой директории хранятся и изменяются все серверные настройки, которые вы можете включить, связав с другой директорией.
- /etc/nginx/sites-enabled/: эта директория, где находятся все включенные серверные файлы для каждого сайта. Обычно они создаются тогда, когда создается связь с конфигурационными файлами, которые находятся в директории sites-available.
- /etc/nginx/snippets: эта директория содержит конфигурационные фрагменты, которые могут быть включены в конфигурацию Nginx. Например, сюда можно добавить повторяемые конфигурационные сегменты.
- /var/log/nginx/access.log: в этом файле записываются все запросы к вашему веб-серверу (до тех пор, пока вы не измените это в настройках).
- /var/log/nginx/error.log: в этом файле записываются все ошибки Nginx.
Настройка Nginx
Администрирование веб-сервера представляет из себя изменение и поддержку конфигурационных файлов. Среди них 1 файл конфигурации и 2 каталога. Это nginx.conf, sites-available и sites-enabled соответственно. Все они лежат в директории /etc/nginx.
Рассмотрим более детально главный файл конфигурации. Для этого откроем его для просмотра, используя редактор:
sudo nano /etc/nginx/nginx.confПосле выполнения команды откроется файл, разделенный на модули. По умолчанию он выглядит так, как показано на рисунке ниже:
Каждый отдельный модуль — это директива, которая отвечает за определенные настройки веб-сервера. Они бывают простыми и блочными. Блочные директивы, помимо имени и параметров, хранят набор дополнительных инструкций, размещенных внутри фигурных скобок.
Перечислим некоторую часть директив главного конфигурационного файла:
worker_processes— число рабочих процессов сервера. Оно должно быть не больше, чем количество ядер процессора. Параметрautoустановит число автоматически.pid— файл с номером главного процесса.include— отвечает за подключение иных файлов конфигурации, удовлетворяющих заданной маске.events— контекст, состоящий из директив, влияющих на работу сетевого соединения.worker_connections— максимальное число одновременно работающих соединений одного рабочего процесса.multi_accept— флаг, который может быть как включен (on), так и выключен (off). Если он включен, то рабочий процесс будет принимать все новые соединения, иначе только одно.use— указывает метод обработки соединений. По умолчанию сервер выбирает наиболее подходящий и эффективный.http— контекст, состоящий из директив, отвечающих за работу HTTP-сервера.sendfile— включает (on) или отключает (off) метод отправки данных sendfile().tcp_nopush,tcp_nodelay— параметры, влияющие на производительность. Первый заставляет сервер отправлять заголовки HTTP-ответов одним пакетом, а второй позволяет не буферизировать данные и отправлять их короткими очередями.keepalive_timeout— параметр, отвечающий за время ожидания keep-alive соединения до его разрыва со стороны сервера.keepalive_requests— максимальное число запросов по одному keep-alive соединению.error_log— лог ошибок веб-сервера. Для сбора ошибок в определенной секции (http, server и т.д.) необходимо разместить директиву внутри нее.gzip— сжатие контента.
Устанавливаем Nginx
Так как Nginx доступен в стандартных репозиториях Ubuntu, установить его достаточно просто.
В данной сессии мы еще не обращались к системе пакетов apt, поэтому для начала вам нужно обновить локальный индекс пакетов. Таким образом вы получите доступ к самым последним (новым) спискам пакетов:
И лишь после этого устанавливайте Nginx:
$ sudo apt-get install nginx
После выполнения данной команды apt-get установит Nginx и все необходимые зависимости на ваш сервер.
Тестирование Nginx
После завершения инсталляции веб-сервера, Ubuntu запустит его автоматически.
Чтобы проверить, что он работает, нужно ввести команду:
$ systemctl status nginx
В случае успешного запуска службы, на экране должно отобразиться:

В терминале набираем команду:
$ ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'Другой метод проверки видимости сервера в интернете:
$ curl -4 icanhazip.com
Полученный адрес следует, также прописать в браузере, чтобы увидеть стартовую страницу веб-сервера.
Она будет выглядеть вот так:

Работа с nginx
В этом разделе вы познакомитесь с основными командами управления веб-сервером.
Команда для того, чтобы остановить веб-сервер:
$ sudo systemctl stop nginxЗапустить веб-сервер после остановки:
$ sudo systemctl start nginxПерезапустить сервис (остановить и снова запустить):
$ sudo systemctl restart nginxЕсли вы вносите конфигурационные изменения, nginx можно перезагрузить без потери соединений. Для этого введите команду:
$ sudo systemctl reload nginxNginx по умолчанию начинает работу в то же время, когда и сервер. Но эту логику можно изменить следующей командой:
$ sudo systemctl disable nginxЕсли вам снова нужно сделать так, чтобы сервис начинал работу одновременно с сервером, введите:
$ sudo systemctl enable nginxНастройка фаервола
Перед тестированием nginx необходимо настроить фаервол для того, чтобы дать доступ сервису. Nginx регистрирует себя как сервис с утилитой ufw — благодаря этому дать доступ nginx довольно легко.
Введите команду ниже для того, чтобы увидеть конфигурации приложений, с которыми может работать ufw.
Вам высветится вот такой список:
То есть для nginx доступны 3 профиля:
- Nginx Full: профиль открывает два порта – 80 (обычный, незашифрованный веб-трафик) и 443 (TLS/SSL зашифрованный трафик)
- Nginx HTTP: профиль открывает только порт 80 (обычный, незашифрованный веб-трафик)
- Nginx HTTPS: профиль открывает только порт 443 (TLS/SSL зашифрованный трафик)
Рекомендуется включать наиболее ограниченный профиль, но при условии, что он будет пропускать тот трафик, который вы настроили. Так как SSL-протокол пока еще не настроен, вам нужно открыть порт 80 для обычного трафика.
$ sudo ufw allow 'Nginx HTTP'Проверить изменения можно командой:
В выводе вы увидите, что HTTP-трафик разрешен:
Nginx HTTP (v6) Настройка Nginx
В этом разделе вам нужно будет установить Nginx и настроить на нём виртуальные хосты для двух других ваших доменов.
Запустите инсталляцию Nginx:
$ sudo apt install nginxСозданный каталог дефолтного виртуального хоста нужно удалить:
$ cd /etc/nginx/sites-enabled
$ sudo rm defaultДля новых хостов сначала создайте соответствующие директории:
$ sudo mkdir -v /usr/share/nginx/ng1.site
$ sudo mkdir -v /usr/share/nginx/ng2.siteТеперь создайте для них файлы index.html и :info.php
$ echo "<title>ng1.site</title><h1>Nginx Site - ng1.site</h1>" | sudo tee /usr/share/nginx/ng1.site/index.html
$ echo "<title>ng2.site</title><h1>Nginx Site - ng2.site</h1>" | sudo tee /usr/share/nginx/ng2.site/index.html
$ echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/ng1.site/info.php
$ echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/ng2.site/info.phpДалее, для каждого из ваших Nginx-сайтов создайте файл хоста, заменяя ИМЯ_ДОМЕНА на имена ваших доменов, которые вы будете размещать на Nginx. В примере, это – ng1.site и ng2.site:
$ sudo nano /etc/nginx/sites-available/ИМЯ_ДОМЕНАИ вставьте в него следующий текст, также заменяя ИМЯ_ДОМЕНА на имена ваших доменов, как, например, ng1.site и ng2.site:
server {
listen 80 default_server;
root /usr/share/nginx/ИМЯ_ДОМЕНА;
index index.php index.html index.htm;
server_name ИМЯ_ДОМЕНА www.ИМЯ_ДОМЕНА;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
include snippets/fastcgi-php.conf;
}
}Сохраняйте файлы перед закрытием. Проделайте процедуру для каждого из ваших доменов.
После этого, создайте ссылки для ваших виртуальных хостов:
$ sudo ln -s /etc/nginx/sites-available/ng1.site /etc/nginx/sites-enabled/ng1.site
$ sudo ln -s /etc/nginx/sites-available/ng2.site /etc/nginx/sites-enabled/ng2.siteЗапустите тест корректности синтаксиса:
$ sudo nginx -tПерезапустите сервис, если проверка синтаксиса ошибок не показала:
$ sudo systemctl reload nginxИ наконец, в браузере откройте по очереди ссылки на ваши сайты, работающие на Nginx: http://ng1.site/info.php и http://ng1.site/info.php:


Соответственно, каждый из ваших доменов должен теперь открываться по ссылке на него. Например, набрав в браузере http://ng1.site, вы должны получить следующую картинку:

Что нужно для установки
Для инсталляции на Ubuntu 18.04 понадобится: установленная операционная система, имеющая статический IP-адрес, с доступом в интернет. Также желательно, чтобы файрвол UFW был включен.
Тестирование веб-сервера NGINX
Вы должны увидеть веб-страницу по умолчанию под названием «Добро пожаловать в nginx!“

Теперь требуется, убедится, что соответствующий порт открыт в вашем брандмауэре. Например, если вы включили Брандмауэр UFW на своем сервере Ubuntu. Вы должны попытаться обновить правила брандмауэра. Для того чтобы разрешить NGINX общаться по порту 80 и/или 443 следующим образом.
Команда разрешает NGINX работать на порту 80:
$ sudo ufw allow 'Nginx HTTP'
Команда разрешает NGINX работать на порту 443:
$ sudo ufw allow 'Nginx HTTPS'
Важные директории и файлы настроек Nginx
В заключении будет нелишним перечислить наиболее важные в части настройки и проведения анализа работы файлы и папки для настроенного веб-сервера Nginx.
/var/www/html– директория, где распологается начальная страница Nginx (см. выше)./etc/nginx– директория, в которой находятся основные файлы настроек Nginx./etc/nginx/nginx.conf– файл, содержащий главные настройки конфигурации Nginx./etc/nginx/sites-enabled– в данной папке находятся активные виртуальные блоки веб-сервера Nginx./etc/nginx/sites-available– директория, в которой находятся файлы виртуальных блоков для каждого из сайтов, ссылка на них должна быть в каталоге/etc/nginx/sites-enabled./etc/nginx/snippets– каталог, содержащий так называемые сниппеты, которые можно при необходимости подключать к основной конфигурации сервера Nginx./var/log/nginx– директория, которая содержит журналы событий работы Nginx.
Виртуальные хосты Apache
Следующий этап в настройке сервера – создание виртуальных хостов для ap1.site и ap2.site. Как было описано выше, эти домены будут работать под управлением Apache. Для этих сайтов нужно создать соответствующие директории и файлы index.html:
$ sudo mkdir -v /var/www/ap1.site /var/www/ap2.site
$ echo "<title>ap1.site</title><h1>Apache Site - ap1.site</h1>" | sudo tee /var/www/ap1.site/index.html
$ echo "<title>ap2.site</title><h1>Apache Site - ap2.site</h1>" | sudo tee /var/www/ap2.site/index.htmlДля каждого из ваших сайтов необходимо создать соответствующий файл info.php. Так можно будет проверить корректность конфигурации PHP на каждом из хостов:
$ echo "<?php phpinfo(); ?>" | sudo tee /var/www/ap1.site/info.php
$ echo "<?php phpinfo(); ?>" | sudo tee /var/www/ap2.site/info.phpДалее, создайте файлы для каждого из ваших виртуальных хостов при помощи, например, текстового редактора nano. Будьте внимательны: ИМЯ_ДОМЕНА – это доменное вашего сайта. Запустите команду сначала для первого вашего сайта (в примере это – ap1.site):
sudo nano /etc/apache2/sites-available/ИМЯ_ДОМЕНА.confВ открытый файл вставьте следующий текст, заменяя ИМЯ_ДОМЕНА на имя вашего первого домена, который вы размещаете на Apache (в примере это – ap1.site):
<VirtualHost *:8080>
ServerName ИМЯ_ДОМЕНА
ServerAlias www.ИМЯ_ДОМЕНА
DocumentRoot /var/www/ИМЯ_ДОМЕНА
<Directory /var/www/ИМЯ_ДОМЕНА
AllowOverride All
</Directory>
</VirtualHost>Теперь нужно закрыть файл с сохраненим внесённых изменений (при использовании nano нужно нажать Ctrl-X, Y и Enter). После этого, проделайте то же для второго вашего домена.
После чего, необходимо создать ссылки на созданные хосты:
$ sudo a2ensite ap1.site
$ sudo a2ensite ap2.siteПротестируйте Apache на корректность синтаксиса:
sudo apachectl -tЕсли проверка сообщила, что Syntax OK, нужно будет перезапустить сервис:
sudo systemctl reload apache2Чтобы протеститровать доступность ваших сайтов, наберите в браузере http://ap1.site:8080 для первого сайта и http://ap2.site:8080 для второго.
Если, всё идёт правильно, в первом случае вы увидите:

А во втором:

А, набрав в браузере http://ap1.site:8080/info.php и http://ap1.site:8080/info.php, вы увидите конфигурационную страницу PHP:

Настройка веб-сервера Nginx
При настройке веб-сервера Nginx, первым делом следует уделить внимание брандмауэру, используемому операционной системой вашего сервера. Для защиты подключений к вашей системе, с точки зрения простоты использования и надёжности, наиболее оптимально подойдёт такой инструмент как Uncomplicated Firewall (UFW). Чтобы увидеть профили приложений, о которых знает UFW, используйте инструкцию:
$ sudo ufw app listСписок этих приложений выглядит так:

Чтобы подключаться к Nginx используя HTTP, введите команду:
$ sudo ufw allow 'Nginx HTTP'и проверьте статус UFW:
$ sudo ufw statusДолжно быть примерно так:

Поскольку веб-сервер устанавливается как служба, проверить статус Nginx можно командой:
$ systemctl status nginx

Установка компонентов
Первым делом нужно установить сам веб-сервер в систему. Программа есть в официальных репозиториях, но ее версия уже немного устарела, поэтому если хотите самую новую версию, нужно добавить PPA:
Сейчас в официальных репозиториях доступна версия 1.10.0, а в стабильной PPA уже доступна 1.10.1. Если для вас версия не нужна можно обойтись и без PPA. Дальше обновите списки пакетов из репозиториев:
sudo apt update
И устанавливаем ngnix:
sudo apt install nginx

После того как установка сервера Nginx будет завершена добавим программу в автозагрузку, чтобы она запускалась автоматически:
sudo systemctl enable nginx
Если вы уже сейчас откроете браузер, то увидите работающий nginx, но нам предстоит его еще настроить.

Настройка Nginx Ubuntu намного сложнее чем Apache. Здесь мы не будем рассматривать все опции и возможности программы, а поговорим только об основном. Есть различные конфигурации, в которых Nginx используется в качестве прокси сервера, а основной сервер Apache, но нас это интересовать не будет. Нам нужна установка Nginx как самостоятельного веб-сервера.
Настройки Nginx сильно отличаются здесь есть только один основной файл конфигурации и файлы для виртуальных хостов. Настройка из каждой директории, как в Apache не поддерживается.
- /etc/nginx/nginx.conf — главный файл конфигурации
- /etc/nginx/sites-available/* — файлы конфигурации для виртуальных хостов, проще говоря для каждого сайта.
- /etc/nginx/sites-enabled/* — файлы конфигурации активированных сайтов.
На самом деле файлы конфигурации для виртуальных хостов читаются только из директории sites-enabled, но здесь содержаться ссылки на sites-available. Такая система была придумана, чтобы дать возможность отключать на время те или иные сайты, не стирая их конфигурацию. Все остальные файлы содержат только объявления переменных и стандартные настройки, которые изменять не нужно. Что же касается nginx.conf, то в него включаются все файлы из sites-enables, а поэтому они могут содержать все точно такие же инструкции. А теперь давайте рассмотрим главный файл конфигурации:
sudo vi /etc/nginx/nginx.conf

Как видите файл разделен на секции. Общая структура такова:
- глобальные опции отвечают за работу всей программы.
- events — эта секция содержит настройки для работы с сетью.
- http — содержит настройки веб-сервера. Должна содержать секцию servier для тонкой настройки каждого сайта.
- server — в этой секции содержится настройка каждого размещенного на веб-сервере сайта.
- location — секция location может находиться только внутри секции server и содержит настройки только для определенного запроса.
- mail — содержит настройки почтового прокси.
Теперь, когда вы немного изучили глобальную структуру, можно переходить к рассмотрению самих параметров. Глобальных опций не так уж много:
- user — пользователь, от имени которого будет работать программа.
- worker_processes — устанавливает сколько процессов нужно запускать для параллелизации работы программы, нужно запускать не больше процессов, чем у вас есть ядер. Можно установить параметр auto и тогда программа определит это число сама.
- pid = файл pid программы.
- worker_rlimit_nofile — указывает максимальное количество файлов, которые может открыть программа. Рассчитывается как worker_processes * worker_connections* 2.
С глобальными опциями закончили, их было не так много и они не такие интереснее. Куда интереснее в плане оптимизации опции с секции events:
- worker_connections — количество соединений, которые программа может обрабатывать одновременно на одном процессе. Если умножить worker_process на этот параметр, то мы получим максимальное количество пользователей, которые могут подключиться к серверу одновременно. Рекомендуется устанавливать значение от 1024 до 4048.
- multi_accept — разрешить принимать много подключений одновременно, установите параметр on или off.
- use — способ работы с сетевым стеком. По умолчанию используется poll, но для Linux эффективнее использовать epoll.
Дальше переходим самой главной секции — http. Здесь опций намного больше:
- sendfile — использовать метод отправки данных sendfile. Значение on.
- tcp_nodelay, tcp_nopush — отправлять заголовки и начало файла одним пакетом. Значение on.
- keepalive_timeout — таймаут ожидания, перед тем как keepalive соединение будет разорвано, по умолчанию 65, но можно уменьшить до 10 секунд.
- keepalive_requests — максимальное количество keepalive соединений от одного клиента, рекомендовано 100.
- reset_timedout_connection — разрывать соединения после таймаута. Значение on.
- open_file_cache — кэшировать информацию об открытых файлах. Строчка настройки выглядит вот так: open_file_cache max=200000 inactive=20s; max — максимальное количество файлов в кэше, время кэширования.
- open_file_cache_valid — указывает по истечении какого времени нужно удалить информацию из кэша. Например: open_file_cache_valid 30s;
- open_file_cache_min_uses — кэшировать информацию о файлах, которые были открыты как минимум указанное количество раз.
- open_file_cache_errors — кэшировать информацию об отсутствующих файлах, значение on.
Основные параметры рассмотрели. Эти настройки помогут вам получить большую производительность от nginx. Секцию server и location мы рассмотрим в настройке виртуальных хостов.
Поэтапная настройка NGINX
Рекомендуем Вам сначала проверить и скорректировать настройки по умолчанию в файле /etc/nginx/nginx.conf.
Начните настройку с проверки или указания пользователя, от имени которого Вы будете работать:
Затем укажите число рабочих процессов. Мы советуем исходить из количества процессорных ядер в Вашем сервере, то есть число рабочих процессов будет равняться числу процессорных ядер (но Вы можете поставить и какое-либо другое значение). Это число задается следующей командой:
Далее Вы можете указать место, куда будут записываться файлы с логами ошибок:
error_log /spool/logs/nginx/nginx.error_log notice;
Всего существует 7 уровней уведомлений: info, notice, warn, error, crit, alert и emerg. Уровни перечислены в порядке от наименее важных сообщений к наиболее важным. Выставляя уровень, учитывайте, что в файл логов будут попадать все сообщения этого и более высоких по важности уровней.
Затем Вам нужно будет выбрать метод обработки соединений. Если Вы затрудняетесь в выборе, тогда NGINX самостоятельно выбирает метод, который является наиболее эффективным. Ознакомиться со всеми поддерживаемыми методами Вы можете по этой ссылке: http://nginx.org/ru/docs/events.html
Теперь Вы должны определиться с максимальным числом соединений, которое одновременно будет обрабатывать рабочий процесс. Высчитывая это число, держите в уме, что максимальное количество обслуживаемых клиентов будет равно произведению worker_connections и worker_processes.
У Вас должен получиться похожий код:
events {
worker_connections 2048;
}В следующем блоке настроек первым делом необходимо включить sendfile(), так как это позволяет улучшить производительность сервера:
Далее выставите параметр, касающийся времени поддержания соединения, если по нему нет запросов:
Теперь Вам необходимо включить файл, отвечающий за поддержку MIME-типов, используя директиву include:
include /etc/nginx/mime.types;
Данная настройка определяет соответствие между MIME-типами и расширениями имен файлов, и, как правило, этот файл содержит большинство соответствий. В данном случае соответствие будет задаваться директивой types. Полный список соответствий Вы можете найти в файле conf/mime.types.
Далее Вам нужно указать тип данных по умолчанию:
default_type application/octet-stream;
Теперь перейдем к настройке, которая касается сжатия; за нее отвечает модуль gzip. Благодаря ему размер данных, которые передаются, может быть уменьшен в два раза и более. Строка со включенным gzip выглядит следующим образом:
Поэтому если Вы хотите выключить сжатие ответа данным методом, вместо “on” Вам нужно написать “off”.
Следующее, с чем необходимо определиться, — это размер и количество буферов, в которые будет сжиматься ответ:
При этом размер одного буфера, как правило, соответствует размеру страницы.
Теперь укажите, на каком уровне компрессии будет происходить сжатие (выбирайте значение от 1 до 9):
Еще одна из возможных настроек — минимальная длина ответа, для которого будет использовано сжатие:
Вы можете также определить, к каким MIME-типам будет применено сжатие ответа при помощи gzip. По умолчанию эта строка выглядит так:
Но Вы можете добавить и какие-либо еще типы. Если Вы хотите, чтобы сжатие применялось ко всем MIME-типам, тогда введите знак звездочки “*”.
Сжатие ответа для проксированных запросов определяется отдельным параметром:
По умолчанию эта возможность выключена (off), но Вы можете установить там один или несколько других параметров, к примеру, “auth” разрешит использование gzip, если заголовок вопроса содержит поле “Authorization”. Параметр “Any” делает возможным сжатие для всех проксированных запросов.
Теперь давайте перейдем к настройке файлов логирования.
За запись логов в NGINX отвечает модуль ngx_http_log_module. Он записывает логи в том формате, который указан; по умолчанию (если Вы не укажите какой-либо другой) выбирается “combined”:
access_log logs/access.log combined
Обычно логи сохраняются в директории location, при этом Вы можете сделать перенаправление, и тогда location будет отличным от изначального.
Сама конфигурация логов может выглядеть следующим образом:
log_format compression '$remote_addr - $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" "$gzip_ratio"'; access_log /spool/logs/nginx-access.log compression buffer=32k;
Давайте рассмотрим каждую из директив данной конфигурации:
- log_format – определяет формат логов; Вы можете использовать как общие переменные, так и переменные, которые существуют только в тот момент, когда происходит запись в лог. К примеру, в данной директиве:
- $remote_addr – адрес клиента;
- $remote_user – имя пользователя;
- $time_local — локальное время;
- $request — первоначальная строка запроса целиком;
- $status – статус ответа;
- $bytes_sent – размер байт, которые были переданы клиенту;
- $http_referer и $http_user_agent — поля заголовка запроса клиента;
- $gzip_ratio — достигнутый коэффициента сжатия будет записан в лог.
Следующая директива access_log указывает путь, формат (будет сжат файл или нет) и настройки записей. Также существует директива open_log_file_cache, которая определяет кэш, где будут храниться файловые дескрипторы тех логов, которые часто используются.
При желании Вы можете сделать запись буферизированной. Есть два способа сделать это: можно использовать параметр buffer, определив размер буфера (размер по умолчанию равняется 64 Кбайт), либо укажите параметр gzip (этот параметр также отвечает за сжатие файла: Вы можете выбрать значение от 1 до 9, при этом 1 равняется быстрому, но не очень хорошему сжатию, а 9 равняется хорошему, но медленному сжатию). Для чтения подобных сжатых логов файл необходимо распаковывать, либо Вы можете использовать утилиту “zcat”.
Заключительным этапом настройки веб-сервера является включение необходимого сайта (или сайтов), а также SSL при помощи директивы include:
include /etc/nginx/sites-enabled/*; include /etc/nginx/ssl-enabled/*;
Настройка Nginx Server Blocks
Стоит отметить, что веб-сервер Nginx может служить хостингом не только одного, но и нескольких сайтов одновременно. Для этого необходимо создать на нём дополнительные виртуальные хосты, каждый из которых будет хранить данные своего отдельного домена.
Данные сайта изначально расположены в каталоге /var/www/html. Чтобы добавить ещё один домен, необходимо создать директорию /my-domain.host/html, где my-domain.host – имя создаваемого домена, в /var/www с соответствующими правами:
$sudo mkdir -p /var/www/my-domain.host/html$sudo chown -R $USER:$USER /var/www/my-domain.host/html$sudo chmod -R 755 /var/www/my-domain.host
Теперь, когда есть директория домена, в ней можно создать файл страницы сайта index.html:
$ sudo nano /var/www/my-domain.host/html/index.html<html><head><title>Domainon Nginx</title></head><body><h1>Connection to my-domain.host is created successfully!!!</h1></body></html>
Чтобы сохранить изменения и выйти из текстового редактора используйте CNTRL X, после чего Y и Enter.
Далее, в каталоге /etc/nginx/sites-available/ необходимо создать файл my-domain.host:
$ sudo nano /etc/nginx/sites-available/my-domain.hostи скопируйте в него:
server{listen 80;listen [::]:80;root /var/www/my-domain.host/html;index index.html index.htm index.nginx-debian.html;server_name my-domain.host www.my-domain.host;location /{try_files $uri $uri/ =404;}}
После того, как произведена замена server_name на имя вашего домена, необходимо создать ссылку в /etc/nginx/sites-enabled/:
$ sudo ln -s /etc/nginx/sites-available/my-domain.host /etc/nginx/sites-enabled/Также, необходимо отредактировать файл /etc/nginx/nginx.conf:
$ sudo nano /etc/nginx/nginx.confа именно, раскомментируйте строку, содержащую server_names_hash_bucket_size, удалив символ #. Перед выходом из текстового редактора не забудьте сохранить произведённые изменения (CNTRL X, после чего Y и Enter).
Для выявления возможных ошибок в файлах Nginx введите:
$ sudo nginx -tЕсли ошибок нет, вывод команды должен быть таким:

Следующим шагом Nginx следует перезапустить:
$ sudo systemctl restart nginxПосле произведённых действий Nginx готов обслуживать новый виртуальный хост. Чтобы убедиться в этом, откройте добавленный домен в браузере. Сообщение на странице будет выглядеть как:

Настройка сжатия Gzip
Сжатие контента необходимо, чтобы уменьшить размер загружаемых браузером данных. Это ускоряет загрузку сайта, но добавляет дополнительную нагрузку на процессор сервера. Чтобы включить сжатие в секции http нужно добавить параметр:
Эту директиву можно использовать также в секции server, тогда она будет работать только для указного виртуального домена. Дальше настраиваем параметры сжатия настраиваются с помощью следующих опций:
- gzip_min_length — минимальная длина страницы в байтах, при которой нужно использовать сжатие, например, 1000 (1 кб)
- gzip_proxied — нужно ли сжимать проксированые запросы, any говорит, что нужно сжимать все.
- gzip_types — типы файлов, которые нужно сжимать, например: text/plain application/xml application/x-javascript text/javascript text/css text/json;
- gzip_disable «msie6» — в IE 6 сжатие не поддерживается, поэтому отключаем.
- gzip_comp_level — уровень сжатия, доступны варианты от 1 до 10. 1 — минимальное, 10 — максимальное сжатие.
Установка Nginx
$sudo apt update$sudo apt install nginx
Первая инструкция выполняет обновление базы данных доступных для установки пакетов. Вторая выполняет установку элементов веб-сервера Nginx.
На этом всё, что касается установки Nginx. Переходим к его настройке.
Проверяем веб-сервер
В самом конце процесса установки Ubuntu 16.04 запустит Nginx. Веб-сервер уже должен работать.
Используя демон systemd, вы можете проверить, запущен ли веб-сервер:
Вам высветится информация, где особое внимание нужно уделить строчке:
Active: active (running) since Mon 2016-04-25 15:44:00 UTC; 5min 9s ago
Благодаря этим данным вы можете убедиться, что все работает исправно. Однако лучший способ протестировать работу Nginx – это запросить какую-либо страницу.
$ ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'В ответ вы увидите несколько строчек – введите каждую из них в адресную строку своего браузера, чтобы проверить, какая из них работает.
$ sudo apt-get install curl $ curl -4 icanhazip.com
Вам должна высветиться приветственная страница Nginx:
Эта страница просто показывает вам, что сервер работает правильно.
Установка NGINX на Ubuntu 20
Прежде чем приступить к установке NGINX. Сначала запустите команду sudo apt-get update, чтобы получить информацию о новых и обновленных пакетах Ubuntu.
Nginx доступен в репозитории пакетов Ubuntu. Поэтому Nginx очень лего установить с помощью следующей команды:
$ sudo apt-get install nginx
Установка nginx
Так как nginx по умолчанию доступен в репозиториях Ubuntu, его можно установить прямо из них при помощи пакетного менеджера apt.
$ sudo apt update$ sudo apt install nginx
После выполнения команды пакетный менеджер установит nginx и все необходимые зависимости на ваш сервер.
Проверьте состояние службы NGINX
Давайте сделаем быструю проверку, чтобы подтвердить статус сервиса NGINX. Для этого выполните следующую команду:
$ sudo systemctl status nginx

Вывод приведенной выше команды подтверждает, что NGINX активен и работает.
Если вы получаете сообщение о том, что NGINX неактивен, не запущен или не работает. Тогда вы можете вручную запустить службу NGINX. Для этого выполните следующую команду:
$ sudo systemctl start nginx
Чтобы проверить установленную версию Nginx, запустите:
$ sudo dpkg-l nginx

Проверьте версию Nginx на Ubuntu
Эти данные показывают, что установлен nginx версии 1.18.0. На момент написания статьи это последняя версия для Ubuntu 20.04.
Просмотр статистики
Просмотр статистики работы веб-сервера очень важен. Установка nginx, должна содержать настройку возможности получения статистики. Для того чтобы это сделать добавьте такие строки к вашему хосту в секцию server:
Статистика будет доступна только с локального ip:
wget localhost/basic-status -O -
Установка Nginx
Nginx можно установить из репозиториев Ubuntu, поэтому для исталляции пакета необходимо ввести следующие команды, подключившись для этого к системе с помощью учётной записи, имеющей привилегию на запуск утилиты sudo:
$ sudo apt updateПервая команда обновляет список пакетов вашей системы.
$ sudo apt install nginxВторая команда как раз и выполняет установку элементов сервера Nginx на вашу систему.

