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

# Установка nginx

{% hint style="danger" %}
Перед установкой убедитесь, что у Вас не установлен Apache2!&#x20;

[Подобнее](https://docs.evenhost.ru/ustanovka-nginx#proverka-na-apache2)
{% endhint %}

### Установка nginx

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

```
apt-get install nginx -y
```

## Настройка nginx

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

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

{% code title="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;
    }
}
```
{% endcode %}

Перезагружаем nginx:

```
nginx -s reload
```

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

{% hint style="info" %}
PHP не обязатель для работы с nginx. Эту примечания нужно, только тем у кого сайт использует PHP
{% endhint %}

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

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

```
php -v
```

Выведет версию PHP согласно с ней нужно указать путь. Например:\
&#xNAN;_&#x412;ывело версию **php 5.6**, то параметр должен выглядеть:_

{% code title="site.conf" %}
```
fastcgi_pass unix:/run/php/php5.6-fpm.sock;
```
{% endcode %}

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

{% code title="site.conf" %}
```
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
```
{% endcode %}

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

{% hint style="info" %}
Подключение SSL не обязательно, осуществляется при его наличии и Вашем желание.&#x20;
{% endhint %}

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

```
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.&#x20;

```
service apache2 status
```

{% hint style="info" %}
&#x20;Если не будет огромного сообщения с информацией, то он не установлен.
{% endhint %}

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

```
apt-get remove --purge apache2* -y
```

## Удаления nginx

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

```
service nginx stop
```

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

```
apt-get remove --purge nginx*
```
