Обратный прокси-сервер NGINX — Документация NGINX

1. Определение NGINX
2. Установите NGINX
3. Установите веб-приложение NodeJS (Express)
4. Внедрить резервный прокси-сервер
5. Внедрение ограничения скорости запроса

Что такое Nginx?

Как объяснялось выше, Nginx — это веб-сервер с открытым исходным кодом, преимущество которого заключается в том, что производительность вашего сайта выглядит более сложной и мощной. Одним из преимуществ Nginx является то, что его легко настроить.

Nginx — это веб-сервер, который был впервые выпущен в октябре 2004 года выходцем из России Игорем Сысоевым. Изначально Nginx функционировал только как HTTP веб-сервис.


Установите NGINX в Linux

Я буду использовать команды, приведенные ниже, с реализацией на Ubuntu 22.04 LTS

sudo apt-get update
Войдите в полноэкранный режим Выход из полноэкранного режима
sudo apt-get install nginx -y
Войдите в полноэкранный режим Выход из полноэкранного режима

Установите веб-приложение NodeJS (Express)

Сначала создайте каталог, а затем установите в него модуль node_module

sudo su -
Войдите в полноэкранный режим Выход из полноэкранного режима
mkdir radenfebri
cd radenfebri
Войдите в полноэкранный режим Выход из полноэкранного режима

Используйте команду npm init для создания package.jsonfile для вашего приложения. Для получения дополнительной информации о том, как работает package.json, смотрите раздел Особенности работы с package.json npm.

npm init
Войдите в полноэкранный режим Выход из полноэкранного режима

Эта команда запрашивает у вас некоторые данные, например, имя и версию вашего приложения. На данный момент вы можете просто нажать RETURN, чтобы принять значения по умолчанию для большинства из них, за следующими исключениями:

entry point: (index.js)
Войдите в полноэкранный режим Выход из полноэкранного режима

Введите app.js или любое другое имя основного файла. Если вы хотите, чтобы это был index.js, нажмите RETURN, чтобы принять предложенное по умолчанию имя файла.

Теперь установите Express в каталог myappdirectory и сохраните его в списке зависимостей. Например:

npm install express
Войдите в полноэкранный режим Выход из полноэкранного режима

Чтобы временно установить Express и не добавлять его в список зависимостей:

npm install express --no-save
Войдите в полноэкранный режим Выход из полноэкранного режима

Чтобы попытаться создать паутину, создайте файл с помощью приведенной ниже команды:

touch app.js
Войдите в полноэкранный режим Выход из полноэкранного режима

В этом руководстве я запускаю веб-приложение Express, используя порт 8000, вы можете отредактировать его в разделе app.js, отредактируйте его, как показано в документации ниже:

const express = require('express')
const app = express()
const port = 8000

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})
Войдите в полноэкранный режим Выход из полноэкранного режима

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

node app.js
Войдите в полноэкранный режим Выход из полноэкранного режима

Реализация резервных доверенностей

Войдите в каталог /etc/nginx/sites-available/default и затем настройте, в дальнейшем доступ к приложению будет осуществляться через порт 3000, и этот порт 3000 будет обращаться к порту 8000 на localhost. Более или менее конфигурация, как указано ниже:

sudo nano /etc/nginx/sites-available/default
Войдите в полноэкранный режим Выход из полноэкранного режима
server {
        listen 3000 default_server;
        listen [::]:3000 default_server;

      root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;SS


        location / {

                proxy_pass http://localhost:8000;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;

        }

      }
Войдите в полноэкранный режим Выход из полноэкранного режима
sudo service nginx restart 
Войдите в полноэкранный режим Выход из полноэкранного режима

Применение предельной ставки запроса

Rate Limit на NGINX может использоваться для защиты веб-сервера, чтобы пользователь или злоумышленник нашего сайта не запрашивал пакеты постоянно, а также используется для защиты пропускной способности файлов на веб-сервере.
Войдите в каталог /etc/nginx/sites-available/default

sudo nano /etc/nginx/sites-available/default
Войдите в полноэкранный режим Выход из полноэкранного режима

Добавьте команду ниже:

limit_req_zone $binary_remote_addr zone=one:1m rate=6r/m;
Войдите в полноэкранный режим Выход из полноэкранного режима

Добавьте команду ниже:

limit_req zone=one;
Войдите в полноэкранный режим Выход из полноэкранного режима

Полный код:

limit_req_zone $binary_remote_addr zone=one:1m rate=6r/m;

    server {
        listen 3000 default_server;
        listen [::]:3000 default_server;

      root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;SS


        location / {

                proxy_pass http://localhost:8000;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;

            limit_req zone=one;

        }

      }
Войдите в полноэкранный режим Выход из полноэкранного режима

Перезапустите веб-сервер NGINX, чтобы ограничение скорости могло быть применено и снова нормально работать

sudo service nginx restart 
Войдите в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий