AI 能否應對越來越多的勒索軟件攻擊?
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
在本教程中,您将学习如何在Ubuntu 16.04 LTS上设置完整的RESTful API,该API将使用Node.js和Express服务HTTP请求,同时使用NGINX反向代理它。我们将使用一个名为Postman的应用程序,这是一个非常著名的API开发工具,用于测试我们的API并确保其功能齐全并且可以正常工作。Node.js是基于Chrome V8引擎的快速跨平台JavaScript框架。它同时在桌面和服务器应用程序中使用,并以其单线程事件循环处理而闻名。我们将使用Node.js作为RESTful API的后端,并将其与Express.js(为Node.js构建的Web应用程序框架)捆绑在一起。Express.js作为免费和开放软件发布。Express是用JavaScript编写的服务器端程序,专为构建API而设计,非常适合我们的项目。另一方面,考虑到API开发,Postman是一个非常强大的HTTP客户端。它具有您可能需要用于API开发的所有工具。
首先,您想访问Postman的网站,并为您的主PC(而不是服务器)下载并安装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
文件中指定的起始文件。然后,在PC / Mac上打开Postman 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})
});
在此示例中,我们设置了一种情况,用户可以使用GET方法通过提供数字+ 1的单词形式来请求数字的总和。我们使用router.route()
函数来指出要发送回的数字。参数:
在其前面带有“ ”。我们通过访问这些参数req.params
。
这是一个带有字母的例子。
router.route('/letters/:letter').get((req, res) => {
res.json({result: req.params.letter.toUpperCase()})
});
我们使用与上述相同的方法,但是我们将字母大写回发。
NGINX是用于Web服务,反向代理,流式传输等的著名开源软件。我们将利用NGINX反向代理我们的API,以允许我们在port上运行它80
,因为Node.js不允许没有root访问权限的端口小于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将所有请求从端口80
上的IP地址重定向到端口上运行的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
该应用程序将在port上运行80
。只需使用Postman从上方运行测试,以确保一切正常。
在生产环境中,您想要确保您的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 restart可以做到这一点。它将终止应用程序进程,并在另一个进程下重新启动它。
pm2 monit
-PM2的内置监视工具使您可以在用户友好的ncurses样式图中查看应用程序特定详细信息的图表,例如CPU / RAM使用情况。如果您想要直观地了解应用程序的负载,这将很有用。
现在,我们已经完成了使用Node.js,Express以及使用NGINX反向代理来创建RESTful API的任务。随意扩展本教程。您可以使用新的API进行很多出色的工作,例如添加身份验证方法,数据库,更好的路由和错误处理等等。如果您有一个域,并且已经在IP地址上设置了“ A”记录,那么您将可以从域中访问API。如果您想了解有关Express.js的更多信息,请访问其网站http://expressjs.com。要了解有关NGINX和反向代理的更多信息,请访问http://nginx.com。要了解有关PM2的更多信息,请访问其页面http://pm2.keymetrics.io。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息
大數據的13個商業數據提取工具
我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true
隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。
洞察 26 種大數據分析技術:第 1 部分
過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。