Что такое NGINX?

 

Nginx ― это программное обеспечение с открытым исходным кодом или по-другому open-source. Используется для создания веб-сервера.

С помощью Nginx можно решить множество задач:   
 
— снижение нагрузки на сервер при обработке запросов на файлы;   

— снижение нагрузки на приложения за счёт кеширования;   

— балансировка нагрузки, тем самым повысить отказоустойчивость сервера;   

— обрабатывать сотни тысяч единовременных подключений на одном физическом сервере с Nginx;   

— проводить аутентификацию пользователей.

Nginx работает практически на всех OC Linux и Unix подобных системах, а также [на некоторых версиях Windows](https://nginx.org/ru/#tested_os_and_platforms).



Как устроен конфигурационный файл?

 

Конфигурационный файл Nginx (nginx config) — файл, в котором задаётся количество рабочих процессов 
и определяется вся работа Nginx. По умолчанию, конфиг Nginx называется `nginx.conf` 
и располагается в каталоге `/etc/nginx`, `/usr/local/nginx/conf`, или `/usr/local/etc/nginx`.

Конфигурация Nginx состоит из настроечных директив. Каждая директива должна размещаться в отдельной строке, 
а текст директивы должен завершаться точкой с запятой. В качестве разделителя между 
элементами директивы можно использовать пробел или знак табуляции. Директива выглядит так:

`Имя Директивы Значение [Значение 2] [Значение 3...];`



Как настроить Nginx для раздачи статического содержимого?

 

Одна из важных задач Nginx при настройке сайта — раздача файлов, таких как изображения или статические HTML-страницы. 
За счёт возможности Nginx быстро отдавать файлы, часто используют связку Nginx и какого-то 
другого веб-сервера (например, Apache) для того, чтобы Nginx сразу отдавал файлы, а запросы, 
требующие дополнительной обработки (например, к скриптам PHP), передавал другому веб-серверу путем проксирования (proxy\_pass) 
или к приложению FastCGI.

Настройка правил обработки запросов в Nginx происходит через `location { }` в конфигурационном файле.



Как связать Nginx с приложением FastCGI?

 

Программу Nginx используют для перенаправления запросов на FastCGI-серверы, на которых исполняются приложения, 
созданные с использованием языков программирования и фреймворков, например, PHP, Python или Django.

Для работы с проксируемым сервером нам понадобится директева fastcgi\_pass и fastcgi\_param для настройки параметров, передаваемых FastCGI-серверу. 

Конфигурация будет выглядеть примерно так:

```
server {
    location / {
        fastcgi_pass  localhost:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param QUERY_STRING    $query_string;
    }

    location ~ .(gif|jpg|png)$ {
        root /data/images;
    }
}

```


Как настроить прокси-сервер на Nginx?

 

Настройка сервера Nginx — одно из самых частых применений программы. 
Давайте настроим простой сервер, который будет обслуживать запросы изображений 
из локального каталога и отправлять все остальные запросы на проксируемый сервер.

Сначала откройте конфиг nginx и добавьте ещё один блок `server`:

```
server {
    listen 8080;
    root /data/up1;

    location / {
    }
}

```

Далее, используйте видоизмените конфигурацию сервера — в первый блок `location` добавьте 
директиву `proxy_pass`, указав протокол, имя и порт проксируемого сервера в 
качестве параметра (в нашем случае это http://localhost:8080):

```
server {
    location / {
        proxy_pass http://localhost:8080;
    }

    location /images/ {
        root /data;
    }
}

```


Можно ли настроить Nginx в качестве обратного прокси для Apache?

 

Nginx обрабатывает данные быстро, но не работает с PHP. Часто Nginx используется в связке с 
программным пакетом PHP-FPM, а популярные CMS, например, Wordpress, заточены под работу с Apache. 
Подробнее о настройке программ читайте в этой [инструкции](https://www.reg.ru/support/vps-servery/oblachnie-serveri-vps/ustanovka-programmnogo-obespechenija/kak-nastroit-nginx-v-kachestve-obratnogo-proksi-dlja-apache).

Как установить Nginx на Ubuntu?

 

Установка Nginx на Ubuntu очень проста — используйте менеджер пакетов apt для его установки. Чтобы установить Nginx введите команды: 

```
sudo apt update
sudo apt install nginx

```

В результате Nginx и другие необходимые компоненты для его работы пакеты будут установлены на ваш сервер.



Как настроить редирект домена на HTTPS в Nginx?

 

Nginx — мощный инструмент для перенаправления и управления веб-трафиком. 
Его можно легко настроить для проксирования запросов или веб-трафика HTTP на зашифрованный HTTPS-сервер с SSL.

Если используете Ubuntu, найдите и откройте файл конфигурации в текстовом редакторе, 
используя команду: 

```
sudo nano /etc/nginx/sites-available/server.conf

```

Далее вставьте этот код:

```
server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}

```

После завершения редактирования, сохраните файл и выйдите. Затем перезапустите службу Nginx с помощью следующей команды:

```
sudo service nginx restart

```