# Установка Nginx

<figure><img src="/files/M5CgWqlgpigX0YxWOtBO" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Перед установкой убедитесь, что у Вас не установлен **Apache2.**
{% endhint %}

## Установка веб-сервера <a href="#ustanovka-veb-servera" id="ustanovka-veb-servera"></a>

Его установка крайне проста, используйте следующую команду:

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

## Настройка Nginx <a href="#nastroika-nginx" id="nastroika-nginx"></a>

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

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

{% tabs %}
{% tab title="site.conf" %}

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

{% endtab %}

{% tab title="Second Tab" %}

{% endtab %}
{% endtabs %}

Перезагружаем **Nginx**:

```
service nginx restart
```

## Примечания к PHP <a href="#primechaniya-k-php" id="primechaniya-k-php"></a>

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

## Подключение SSL-сертификата к Nginx <a href="#podklyuchenie-ssl-sertifikata-k-nginx" id="podklyuchenie-ssl-sertifikata-k-nginx"></a>

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

```
server {
    listen 80;
    server_name qwins.co; # домен сайта
    return 301 https://$server_name$request_uri; # редирект с http на https
}

server {
    listen 443 ssl http2;
    server_name qwins.co; # домен сайта

    root /var/www/qwins; # путь до сайта
    index index.html index.htm index.php; # индексные страницы

    access_log /var/log/nginx/qwins.app-access.log; # логи успешных подключений
    error_log  /var/log/nginx/qwins.app-error.log error; # логи ошибочных подключений

    # если требуется что-то отключить, вместо пути до файла пишем «off»

    client_max_body_size 1000m; # максимальный размер файла, переданного через сайт
    client_body_timeout 120s; # значение тайм-аута

    sendfile off; # после включения Nginx будет отправлять заголовки HTTP-ответов одним пакетом, а не отдельными частями.

    # SSL Configuration
    ssl_certificate /etc/letsencrypt/live/qwins.co/fullchain.pem; # публичный ключ сертификата
    ssl_certificate_key /etc/letsencrypt/live/qwins.co/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/qwins; # путь до сайта
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 <a href="#proverka-na-apache2" id="proverka-na-apache2"></a>

Если **Nginx** поставить c **Apache2**, то они будут конфликтовать из-за порта 80. Так что необходимо удалить один из в**еб-серверов**. Проверяем установлен ли **Apache2:**

```
service apache2 status
```

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

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

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

## Удаление Nginx <a href="#udalenie-nginx" id="udalenie-nginx"></a>

Для того, чтобы полностью удалить **Nginx** c сервера, для начала его необходимо остановить:

```
service nginx stop
```

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

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.qwins.co/veb-razrabotka/ustanovka-nginx.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
