Nginx ("engine x") — это HTTP-сервер, обратный прокси сервер с поддержкой кеширования и балансировки нагрузки, TCP/UDP прокси-сервер, а также почтовый прокси-сервер.
Устанавливаем Nginx, выполнив следующую команду:
apt-get install nginx -y
Настройка Nginx
Переходим в sFTP по адресу /etc/nginx/sites-available и создаем файл server_name.conf (имя может быть любым), в который добавляем следующий текст, заменяя данные на свои:
server_name.conf
server {
listen *:80;
server_name u1host.com; # домен сайта
client_max_body_size 1000M; # максимальный размер файла, переданного через сайт
error_page 404 = @notfound;
location / {
root /home/site/u1host; # путь до сайта
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/u1host; # путь до сайта
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-скриптов.
Является не обязательным пунктом, повышающим доверие к вашему сайту
Редактируем ранее созданный конфигурационный файл, приводя его к следующему виду:
server {
listen 80;
server_name u1host.com; # домен сайта
return 301 https://$server_name$request_uri; # редирект с http на https
}
server {
listen 443 ssl http2;
server_name u1host.com; # домен сайта
root /var/www/u1host; # путь до сайта
index index.html index.htm index.php; # индексные страницы
access_log /var/log/nginx/u1host.app-access.log; # логи успешных подключений
error_log /var/log/nginx/u1host.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/u1host.com/fullchain.pem; # публичный ключ SSL сертификата
ssl_certificate_key /etc/letsencrypt/live/u1host.com/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/u1host; # путь до сайта
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
При одновременном использовании Nginx и Apache2 они будут конфликтовать за порт 80, что приведет к некорректной работе. Поэтому необходимо удалить один из веб-серверов.
Проверим наличие Apache2:
service apache2 status
Если вы не увидите большое сообщение с информацией, значит Apache2 не установлен.
Для удаления Apache2 пропишем:
apt-get remove --purge apache2* -y
Удаление Nginx
Для удаления Nginx пропишем команду его остановки: