Перейти к содержанию

Установка NGINX

Установка Nginx

Пропишем команду установки Nginx:

apt-get install nginx -y

Настройка Nginx

Переходим в sFTP по адресу /etc/nginx/sites-available и создаем файл server_name.conf (имя может быть любым), содержащий следующий текст с вашими данными:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
server {
    listen       *:80;
    server_name  aeza.net; # (1)!
    client_max_body_size 1000M; # (2)!
    error_page 404 = @notfound;
    location / {
        root   /home/site/aeza; # (3)!
        try_files $uri $uri.html $uri/ @extensionless-php;
        index  index.html index.php;
    }
    # Подключения PHP, если не нужен, то стираем с 12 по 19 строку
    location ~ \.(php|html|htm)$ {
        try_files $uri =404;
        root   /home/site/aeza; # (4)!
        fastcgi_pass unix:/run/php/php7.0-fpm.sock; # (5)!
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        include /etc/nginx/fastcgi_params;
    }
}
  1. домен сайта
  2. максимальный размер файла, переданного через сайт
  3. путь до сайта
  4. путь до сайта
  5. путь до php

Перезагружаем 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 (протокол шифрования)

Информация

Является необязательным пунктом, повышающим доверие к вашему сайту

Изменяем, созданный ранее, конфиг, приводя его к следующему виду

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
server {
    listen 80;
    server_name aeza.net; # (1)!
    return 301 https://$server_name$request_uri; # (2)!
}

server {
    listen 443 ssl http2;
    server_name aeza.net; # (3)!

    root /var/www/aeza; # (4)!
    index index.html index.htm index.php; # (5)!

    access_log /var/log/nginx/aeza.app-access.log; # (6)!
    error_log  /var/log/nginx/aeza.app-error.log error; # (7)!

    # если требуется что-то отключить, вместо пути до файла пишем «off»

    client_max_body_size 1000m; # (8)!
    client_body_timeout 120s; # (9)!

    sendfile off; # (10)!

    # SSL Configuration
    ssl_certificate /etc/letsencrypt/live/aeza.net/fullchain.pem; # (11)!
    ssl_certificate_key /etc/letsencrypt/live/aeza.net/privkey.pem; # (12)!
    ssl_session_cache shared:SSL:10m; # (13)!
    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; # (14)!

    location ~ \.(php|html|htm)$ {
        try_files $uri =404;
        root /var/www/aeza; # (15)!
        fastcgi_pass unix:/run/php/php7.2-fpm.sock; # (16)!
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        include /etc/nginx/fastcgi_params;
    }
}
  1. домен сайта
  2. редирект с http на https
  3. домен сайта
  4. путь до сайта
  5. индексные страницы
  6. логи успешных подключений
  7. логи ошибочных подключений
  8. максимальный размер файла, переданного через сайт
  9. значение тайм-аута
  10. после включения Nginx будет отправлять заголовки HTTP-ответов одним пакетом, а не отдельными частями.
  11. публичный ключ SSL сертификата
  12. приватный ключ SSL сертификата
  13. объем кеша сессий SSL
  14. уменьшает время загрузки страниц сайта
  15. путь до сайта
  16. путь до php файла

Перезагружаем Nginx:

service nginx restart

Проверка на Apache2

Информация

При использовании Nginx с Apache2, **** они не смогут корректно работать, конфликтуя за порт - 80. Поэтому важно удалить одно из ПО веб-сервера.

Проверим наличие Apache2:

service apache2 status
Информация

Если вы не увидите большое сообщение с информацией, значит Apache2 не уставновлен.

Для удаления Apache2 пропишем:

apt-get remove --purge apache2* -y

Удаление Nginx

Для удаления Nginx пропишем команду его остановки:

service nginx stop

И далее команду для полного удаления Nginx:

apt-get remove --purge nginx*