Установка nginx

Nginx - это веб-сервер с большим количеством возможностей, сделанный по последний каноном технологий. Его используют самые крупные компании, такие как Google, Facebook.

Перед установкой убедитесь, что у Вас не установлен Apache2!

Подобнее

Установка nginx

Его установка крайне проста:

apt-get install nginx -y

Настройка nginx

Вам необходима перейти в /etc/nginx/sites-available и создать файл по типу - site.conf;

Вставьте в конфиг и отредактируйте следующие:

site.conf
server {
    listen       *:80;
    server_name  evenhost.ru; # домен сайта
    client_max_body_size 1000M; # максимальный размер файла, переданного через сайт
    error_page 404 = @notfound;
    location / {
        root   /home/site/evenhost; # путь до сайта
        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/evenhost; # путь до сайта
        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:

nginx -s reload

Примечания к PHP

PHP не обязатель для работы с nginx. Эту примечания нужно, только тем у кого сайт использует PHP

В настройках nginx нужно указать путь до PHP в параметре fastcgi_pass. Путь для всех версий php един, но названия конечного файла зависит от версии PHP.

Нужно проверить версию PHP

php -v

Выведет версию PHP согласно с ней нужно указать путь. Например: Вывело версию php 5.6, то параметр должен выглядеть:

site.conf
fastcgi_pass unix:/run/php/php5.6-fpm.sock;

Вывело версию php 7.1, то параметр должен выглядеть:

site.conf
fastcgi_pass unix:/run/php/php7.1-fpm.sock;

Подключения SSL сертефеката к nginx

Подключение SSL не обязательно, осуществляется при его наличии и Вашем желание.

Мы должны создать или отредактировать конфиг сайта до такого вида:

server {
    listen       *:80;
    listen       *:443 ssl;
    server_name  evenhost.ru; # домен сайта
    client_max_body_size 1000M; # максимальный размер файла, переданного через сайт
    error_page 404 = @notfound;
    ssl on; # Включения SSL
    ssl_certificate /home/ssl/GroupCertificate.pem; # Путь до пубичной части SSL
    ssl_certificate_key /home/ssl/GroupKey.key; # Путь до приватной части SSL
    location / {
        root   /home/site/evenhost; # путь до сайта
        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/evenhost; # путь до сайта
        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:

nginx -s reload

Проверка на Apache2

Если nginx поставить c apache2, то они будут конфликтовать из-за 80 порта. Так что нужно удалить один из web-server. Проверяем установлен ли Apache2.

service apache2 status

Если не будет огромного сообщения с информацией, то он не установлен.

Если Apache2 установлен, нужно его удалить :

apt-get remove --purge apache2* -y

Удаления nginx

Для того, чтобы полностью удалить nginx c VDS, его нужно остановить

service nginx stop

А затем прописать команду, которая безвозвратна его удалит.

apt-get remove --purge nginx*

Last updated