Nginx - це вебсервер з безліччю функцій, створений відповідно до останніх канонів технологій. Його використовують найбільші компанії, такі як ВКонтакте, Google, Facebook та інші.
Перед встановленням переконайтеся, що у вас не встановлений Apache2!
Встановлення вебсерверу
Його встановлення надзвичайно просте, скористайтесь наступною командою:
apt-get install nginx -y
Налаштування Nginx
Необхідно перейти до каталогу /etc/nginx/sites-available і створити файл на зразок «site.conf».
Вставте наступне в конфігураційний файл та відредагуйте:
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-з'єднання не є обов'язковим, воно здійснюється за наявності та за вашим бажанням.
Потрібно створити або відредагувати конфігураційний файл сайту, щоб він виглядав так:
server {
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 встановлений, потрібно його видалити:
apt-get remove --purge apache2* -y
Видалення Nginx
Щоб повністю видалити Nginx з сервера, його потрібно спершу зупинити:
service nginx stop
А потім виконати команду, яка видалить його назавжди: