Изучение 26 методов анализа больших данных: часть 1
Изучение 26 методов анализа больших данных: часть 1
В этом руководстве вы узнаете, как настроить полноценный API RESTful, который будет обслуживать HTTP-запросы с использованием Node.js и Express, а также обратный прокси-сервер с NGINX в Ubuntu 16.04 LTS. Мы будем использовать приложение под названием Почтальоночень известный инструмент разработки API, чтобы протестировать наш API и убедиться, что он полностью функционален и работает правильно. Node.js - это быстрый кроссплатформенный фреймворк JavaScript, основанный на движке Chrome V8. Он используется в настольных и серверных приложениях и известен своей однопоточной обработкой цикла обработки событий. Мы будем использовать Node.js в качестве серверной части для нашего RESTful API, в комплекте с Express.js, нашей структурой веб-приложений, созданной для Node.js. Express.js выпущен как бесплатное и открытое программное обеспечение. Express на стороне сервера написан на JavaScript и предназначен для создания API, что делает его идеальным для нашего проекта. С другой стороны, Postman - очень мощный HTTP-клиент, имеющий в виду разработку API. Он включает в себя все инструменты, которые вы, возможно, захотите для разработки API.
Во-первых, вы хотите перейти на веб-сайт Postman , а также загрузить и установить Postman для вашего основного компьютера (не для вашего сервера). Все инструкции по установке будут на их сайте.
Для начала нам нужно будет установить Node.js, чтобы мы могли начать разработку нашего API. Мы будем загружать и устанавливать Node.js с официального сайта.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Кроме того, вы также захотите получить необходимые инструменты сборки, которые будут полезны при компиляции модулей.
sudo apt-get install build-essential
Для этого урока мы будем использовать LTS-версию Node.js, которая является версией 8.9.3.
Нам нужно будет инициализировать новый проект Node.js, который будет содержать приложение. Для этого создайте новый каталог.
mkdir expressapi
Перейдите в новый каталог. Оказавшись внутри, запустите npm init
и выполните все необходимые запросы. Запомните «точку входа» вашего приложения: вы создадите этот файл позже. Как только вы закончите, вы увидите package.json
файл в вашем текущем каталоге. Он действует как описание нашего проекта и перечисляет все зависимости, необходимые для функционирования.
Теперь мы настроим Express.js и его зависимости.
npm install express
Процесс установки начнется. Чтобы все загрузилось, понадобится несколько минут.
Далее мы создадим наш основной начальный файл для нашего API. Здесь вы будете использовать «точку входа», которую вы видели в package.json
файле. Для этого урока я буду использовать схему именования по умолчанию index.js
.
touch index.js
Затем откройте его в текстовом редакторе nano.
nano index.js
В нашем основном файле мы хотим сначала вызвать все наши основные пакеты и зарегистрировать наши маршруты.
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;
const router = express.Router();
router.get('/', function(req, res) {
res.json({ message: 'API is Online!' });
});
app.use('/api', router);
app.listen(port);
console.log('Listening on port ' + port);
По сути, здесь мы инициализируем наше приложение и настраиваем базовый маршрутизатор для нашего API. Обратите внимание, что мы установили порт нашего приложения в 8080
. Этот номер понадобится нам при настройке нашего RESTful API. Теперь мы готовы пойти дальше и протестировать наш API.
В каталоге проекта выполните следующее.
node <filename>.js
Это запустит API, где <filename>
находится стартовый файл, который вы указали в package.json
файле. Затем откройте Postman на вашем ПК / Mac и нажмите кнопку « New
» в правом верхнем углу, затем нажмите « Request
». Когда там, вы должны увидеть бар с надписью " GET
" рядом с ним. Здесь мы введем URL нашего запроса. Просто введите следующее в разделе URL запроса и нажмите « Send
».
`http://your-server-ip:3000/api`
Вы увидите " 'API is online'
".
Для обработки маршрутов мы будем использовать маршрутизатор Express. Если вы не знаете, что такое маршрутизатор, то, по сути, именно так конечные точки приложения отвечают на запросы клиентов. Вот маршруты, которые мы будем устанавливать в качестве примера:
/api/numbers
- показывает все цифры от 1-10.
/api/letters
- Показывает все буквы от AZ.
Теперь мы настроим нашу первую структуру промежуточного программного обеспечения маршрута, вот так.
router.use(function(req, res, next) {
console.log('We've got something.');
next() //calls next middleware in the application.
});
router.route('/numbers/:number').get((req, res) => {
res.json({result: req.params.number + 1})
});
В этом примере мы настроили ситуацию, когда пользователь может запросить сумму числа +1, предоставив ее в форме слова, используя метод GET. Мы используем router.route()
функцию, чтобы указать, какой номер мы хотим отправить в результате. Параметры именуются с " :
" перед ними. Мы получаем доступ к этим параметрам через req.params
.
Вот пример с буквами.
router.route('/letters/:letter').get((req, res) => {
res.json({result: req.params.letter.toUpperCase()})
});
Мы используем тот же метод, что и выше, но мы отправляем письмо с заглавной буквы.
NGINX - это хорошо известное программное обеспечение с открытым исходным кодом, используемое для веб-обслуживания, обратных прокси-серверов, потоковой передачи и многого другого. Мы будем использовать NGINX для обратного прокси нашего API, чтобы мы могли запускать его через порт 80
, потому что Node.js не разрешает соединения через порты менее 1024 без корневого доступа. Это может пригодиться при привязке вашего домена к вашему серверу.
Чтобы начать установку NGINX, вам необходимо запустить следующее в своем терминале и дождаться завершения установки.
sudo apt-get install nginx
Далее мы хотим создать файл нашего сайта, который NGINX будет использовать для обратного прокси-приложения нашего приложения.
sudo nano /etc/nginx/sites-available-api.js
Заполните файл следующим, затем CTRL+, Oчтобы сохранить его.
server {
listen 80;
location / {
proxy_set_header X-Real-IP
$remote_addr;
proxy_set_header
X-Forwarded-For
$proxy_add_x_forwarded_for;
proxy_set_header Host
$http_host;
proxy_set_header
X-NginX-Proxy true; proxy_pass
http://127.0.0.1:8080/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade
$http_upgrade;
proxy_set_header Connection
"upgrade";
proxy_redirect off;
proxy_set_header
X-Forwarded-Proto $scheme;
}
}
Используя тот же порт, на котором мы запускали наше приложение ранее, мы говорим Nginx перенаправить все запросы с нашего IP-адреса на порт 80
на наш API, работающий на порту 8080
.
Далее, включите обратный прокси-сервер, добавив символическую ссылку в наш новый файл sites-available
:
sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available
Это гарантирует, что NGINX обратит прокси к нашему API.
Как только мы завершили нашу конфигурацию NGINX, мы запустим NGINX, а затем запустим наш API. Сначала перезапустите NGINX.
sudo systemctl restart nginx
Затем вернитесь в каталог API и запустите его.
node <filename>.js
Приложение будет запущено через порт 80
. Просто запустите тест сверху с Почтальоном, чтобы убедиться, что все работает правильно.
В производственной среде вы хотите убедиться, что у вас есть диспетчер процессов для ваших приложений Node, чтобы они всегда работали в фоновом режиме. В этом уроке мы будем использовать менеджер процессов под названием PM2 (Process Manager 2), который является менеджером процессов для приложений Node.js, который будет поддерживать их навсегда с минимальным временем простоя. PM2 поставляется со многими полезными инструментами управления, такими как остановка, перезагрузка, приостановка и многое другое. Чтобы установить PM2, введите следующее и дождитесь его установки.
sudo npm install pm2 -g
После того, как он установлен, все, что вам нужно сделать, это убедиться, что вы находитесь в каталоге проекта, введите следующее, и приложение будет запущено.
pm2 start <filename>.js
Как упоминалось ранее, PM2 имеет несколько полезных инструментов, которые вы можете использовать для лучшего управления вашим приложением.
pm2 stop
- Как следует из названия, это позволяет вам остановить работающее в данный момент приложение и завершить его процесс. Если ваше приложение дает неожиданный результат, его остановка пригодится.
pm2 list
- Функция списка позволяет просматривать все запущенные в данный момент приложения через PM2, сопоставленные по их именам. Если вам нужно быстро проверить работоспособность вашего приложения, вы должны использовать этот инструмент.
pm2 restart
- Если ваше приложение по какой-то причине зависает и вы хотите перезагрузить его, перезапуск pm2 сделает именно это. Это убьет процесс приложения и запустит его снова, в другом процессе.
pm2 monit
- Встроенный в PM2 инструмент мониторинга позволяет вам просматривать график конкретных деталей вашего приложения, таких как использование CPU / RAM, в удобном для пользователя графике в стиле ncurses. Это полезно, если вам нужна визуальная картина загрузки вашего приложения.
Теперь мы завершили нашу задачу по созданию RESTful API, используя Node.js, Express и обратного прокси-сервера с NGINX. Не стесняйтесь расширять этот учебник. С вашим новым API вы можете делать много замечательных вещей, например добавлять методы аутентификации, базу данных, улучшать обработку маршрутов и ошибок и многое, многое другое. Если у вас есть домен с записью «A», уже настроенной для вашего IP-адреса, вы сможете получить доступ к своему API из своего домена. Если вы хотите узнать больше о Express.js, посетите их веб-сайт по адресу http://expressjs.com . Чтобы узнать больше о NGINX и обратном проксировании, посетите http://nginx.com . Чтобы узнать больше о PM2, посетите их страницу по адресу http://pm2.keymetrics.io .
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше