Встановлення Nginx

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

А потім виконати команду, яка видалить його назавжди:

apt-get remove --purge nginx*

Last updated