Nginx - веб-сервер високої продуктивності з широким спектром можливостей, розроблений відповідно до останніх стандартів технологій. Його використовують великі корпорації, такі як VKontakte, Google, Facebook та інші.
Перш ніж розпочати інсталяцію, переконайтеся, що Apache2 вже не встановлено на вашій системі.
Встановлення веб-сервера
Встановлення Nginx дуже просте. Використовуйте наступну команду:
apt-get install nginx -y
Налаштування Nginx
Вам потрібно перейти до каталогу /etc/nginx/sites-available та створити файл типу "site.conf". Вставте наступну конфігурацію та внесіть необхідні зміни:
server {
listen *:80;
server_name spacecore.pro; # Домен вашого сайту
client_max_body_size 1000M; # Максимальний розмір файлу, який дозволено завантажувати на сайт
error_page 404 = @notfound;
location / {
root /home/site/spacecore; # Шлях до вашого сайту
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/spacecore; # Шлях до вашого сайту
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
PHP не є обов'язковим для роботи з Nginx. Ця примітка актуальна лише для тих, чиїй сайт використовує PHP.
Підключення SSL-сертифіката до Nginx
Інтеграція SSL є необов'язковою і повинна здійснюватися лише за наявності SSL-сертифікатів і за бажанням. Змініть або створіть конфігурацію сайту наступним чином:
server {
listen 80;
server_name spacecore.pro; # Домен вашого сайту
return 301 https://$server_name$request_uri; # Перенаправлення з HTTP на HTTPS
}
server {
listen 443 ssl http2;
server_name spacecore.pro; # Домен вашого сайту
root /var/www/spacecore; # Шлях до вашого сайту
index index.html index.htm index.php; # Сторінки індексу
access_log /var/log/nginx/spacecore.app-access.log; # Логи успішних підключень
error_log /var/log/nginx/spacecore.app-error.log error; # Логи помилкових підключень
# Якщо потрібно щось вимкнути, замість шляху до файлу вкажіть "off"
client_max_body_size 1000m; # Максимальний розмір файлу, який дозволено завантажувати на сайт
client_body_timeout 120s; # Значення тайм-ауту
sendfile off; # Після активації Nginx надсилатиме HTTP-відповіді разом, а не окремими частинами
# Налаштування SSL
ssl_certificate /etc/letsencrypt/live/spacecore.pro/fullchain.pem; # Публічний ключ сертифіката
ssl_certificate_key /etc/letsencrypt/live/spacecore.pro/privkey.pem; # Приватний ключ сертифіката
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/spacecore; # Шлях до вашого сайту
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 з сервера, спочатку зупиніть його:
service nginx stop
Потім виконайте команду для остаточного видалення:
apt-get remove --purge nginx*