Nginx (произносится "engine-x") - свободный, мощный и легковесный веб-сервер и прокси-сервер, который может использоваться для обслуживания статических и динамических сайтов, а также для балансировки нагрузки, управления кэшем и обработки запросов.
Также серия полезных статей по Nginx:
Также серия полезных статей по Nginx:
Что делать, если в настройках Nginx не указан файл index
Как устранить 404 Not Found Nginx при недостатке памяти
Как включить режим отладки Nginx?
Ошибка not found Nginx: причины появления и способы устранения
Как устранить 404 Not Found Nginx при недостатке памяти
Как включить режим отладки Nginx?
Ошибка not found Nginx: причины появления и способы устранения
Nginx был создан Игорем Сысоевым в 2002 году и с тех пор стал одним из самых популярных веб-серверов в мире благодаря своей производительности, надежности и гибкости. Он работает на большинстве популярных операционных систем, включая Linux, Unix, macOS и Windows.
Установка Nginx
Пропишем команду установки Nginx:
apt-get install nginx -y
Настройка Nginx
Переходим в sFTP по адресу /etc/nginx/sites-available и создаем файл server_name.conf (имя может быть любым), содержащий следующий текст с вашими данными:
server {
  listen   *:80;
  server_name aeza.net; # домен сайта
  client_max_body_size 1000M; # максимальный размер файла, переданного через сайт
  error_page 404 = @notfound;
  location / {
    root /home/site/aeza; # путь до сайта
    try_files $uri $uri.html $uri/ @extensionless-php;
    index index.html index.php;
  }
  # Подключения PHP, если не нужен, то стираем с 13 по 21 строку
  location ~ \.(php|html|htm)$ {
    try_files $uri =404;
    root /home/site/aeza; # путь до сайта
    fastcgi_pass unix:/run/php/php7.0-fpm.sock; # путь до php 
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $request_filename;
    include /etc/nginx/fastcgi_params;
  }
}
Перезагружаем Nginx:
service nginx restart
Подключение PHP к Nginx
PHP не обязателен для работы с Nginx. Используйте эту часть лишь для сайтов, требующих выполнения PHP скриптов.
Запустим поочередно следующие команды:
wget -q https://packages.sury.org/php/apt.gpg -O- | apt-key add -
echo "deb https://packages.sury.org/php/ stretch main" | tee /etc/apt/sources.list.d/php.list
sudo apt-get -y install php7.4 php7.4-{mcrypt,mysql,fpm}
Перезагружаем Nginx:
service nginx restart
Включение SSL (протокол шифрования)
Является не обязательным пунктом, повышающим доверие к вашему сайту
Изменяем, созданный ранее, конфиг, приводя его к следующему виду:
server {
  listen 80;
  server_name aeza.net; # домен сайта
  return 301 https://$server_name$request_uri; # редирект с http на https
}
server {
  listen 443 ssl http2;
  server_name aeza.net; # домен сайта
  root /var/www/aeza; # путь до сайта
  index index.html index.htm index.php; # индексные страницы
  access_log /var/log/nginx/aeza.app-access.log; # логи успешных подключений
  error_log /var/log/nginx/aeza.app-error.log error; # логи ошибочных подключений
  # если требуется что-то отключить, вместо пути до файла пишем «off»
  client_max_body_size 1000m; # максимальный размер файла, переданного через сайт
  client_body_timeout 120s; # значение тайм-аута
  sendfile off; # после включения Nginx будет отправлять заголовки HTTP-ответов одним пакетом, а не отдельными частями.
  # SSL Configuration
  ssl_certificate /etc/letsencrypt/live/aeza.net/fullchain.pem; # публичный ключ SSL сертификата
  ssl_certificate_key /etc/letsencrypt/live/aeza.net/privkey.pem; # приватный ключ SSL сертификата
  ssl_session_cache shared:SSL:10m; # объем кеша сессий SSL
  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
  ssl_prefer_server_ciphers on; # уменьшает время загрузки страниц сайта
  location ~ \.(php|html|htm)$ {
try_files $uri =404;
root /var/www/aeza; # путь до сайта
fastcgi_pass unix:/run/php/php7.2-fpm.sock; # путь до php файла
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include /etc/nginx/fastcgi_params;
  }
}
Перезагружаем Nginx:
service nginx restart
Проверка на Apache2
Проверим наличие Apache2:
service apache2 status
Если вы не увидите большое сообщение с информацией, значит Apache2 не уставновлен.
При использовании Nginx с Apache2, они не смогут корректно работать, конфликтуя за порт - 80. Поэтому важно удалить одно из ПО веб-сервера.
Для удаления Apache2 пропишем:
apt-get remove --purge apache2* -y
На этом инструкция завершена. 
 
                                    