AI 能否應對越來越多的勒索軟件攻擊?
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
在本教程中,我们将学习如何使用Node.js设置Koa.js Web应用程序进行生产。我们还将使用Apache将示例域与反向代理链接在一起,并学习如何使用适当的流程管理器进行管理。事不宜迟,让我们开始吧。
Node.js是基于Chrome V8引擎的快速跨平台JavaScript框架。它同时在桌面和服务器应用程序中使用,并以其单线程事件循环处理而闻名。Node.js具有一个名为Node Package Manager(NPM)的程序包注册表,其中包含超过一百万个程序包。NPM包(或模块)是Node.js的核心骨干,因为它们是社区驱动的代码,可在您的Node.js应用程序中使用。在我们的Koa.js应用程序中,Node.js是其功能的核心部分。
Koa.js是一个基于Node.js平台的简约Web框架。该小组由流行的Express.js框架背后的同一个团队完成,其目标是通过将中间件从其核心中排除,来进一步最小化已经极简的Express.js框架。Koa.js的主要特点是没有回调。Koa.js基于基于ES6的生成器和ES6功能(例如Promises)构建。
Apache是一种流行的开源Web服务器,用作Web服务器的非常基本的起点。在本教程中,我们将使用Apache作为反向代理,这将使我们能够将应用程序链接到示例域。如果您没有域,则本教程仍将为您工作,唯一的区别是该网站将在您的VPS IP而非域上运行。
与任何Node.js框架一样,您将需要在VPS上安装Node.js。为了本教程的缘故,我将假定您已经在系统上安装了Node.js。如果没有,您可以按照此处的说明进行操作。
我们将需要创建一个文件夹,其中将包含应用程序的核心文件。
mkdir site
随意替换site
为您想要的目录其他任何名称。接下来,我们将需要初始化Node.js包文件。转到您刚刚创建的目录,然后运行npm init
,然后完成提示。最后,它应该看起来像这样:
{
"name": "site",
"version": "1.0.0",
"description": "Koa.js Site",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "yourname",
"license": "ISC"
}
现在我们已经建立了目录,我们可以继续安装Koa.js。在当前工作目录中/site
,键入以下内容。
npm install koa
这将从NPM下载Koa.js模块并将其安装在我们的项目目录中,以备将来使用。接下来,我们将创建示例应用程序文件,其中包含我们的应用程序代码。为此,创建一个index.js
文件。
nano index.js
进入文件后,创建一个示例应用程序。
const Koa = require('koa');
const app = new Koa();
app.use(async ctx => {
ctx.body = 'Hello World';
});
app.listen(3000);
console.log('Website is live!')
保存并关闭文件。CTRL+ X。
我们将要确保我们的应用程序正常运行。要启动它,请运行node index.js
,您将Website is live
在控制台中看到。
现在我们知道我们的网站可以正常运行,我们可以继续安装Apache及其依赖项。
sudo apt install -y libapache2-mod-proxy-html libxml2-dev
为了使用Apache中的反向代理功能,我们需要启用必要的模块。
a2enmod proxy
a2enmod proxy_http
a2enmod proxy_ajp
a2enmod rewrite
a2enmod deflate
a2enmod headers
a2enmod proxy_balancer
a2enmod proxy_connect
a2enmod proxy_html
其中一些模块可能已经启用,但是仔细检查它们总是很好。
现在,我们需要编辑Apache的默认配置文件。
sudo nano /etc/apache2/sites-enabled/000-default.conf
在这里,我们需要为我们的应用程序添加一个块。
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://0.0.0.0:3000/
ProxyPassReverse / http://0.0.0.0:3000
ServerName localhost
</VirtualHost>
保存文件CTRL+ X。
您可能会注意到,我们使用端口3000
作为IP ProxyPass
和ProxyPassReverse
IP 的端口。由于它与运行Koa.js应用程序的端口相同,因此必须输入正确的端口。
更改完成后,我们将需要重新启动Apache并重新启动Koa.js应用程序。
sudo systemctl restart apache2
这将确保在启动Koa.js应用程序时我们的配置文件处于活动状态并可以正常使用。Apache重新启动后,导航回到您的站点目录,然后像以前一样启动Koa.js应用程序。在网络浏览器中,导航到http://yourdomain
或http://yourip:
,您将看到“ Hello World”。
既然我们已经介绍了创建示例Koa.js应用程序的基础知识,我们意识到在生产环境中,立即启动应用程序是不切实际的。流程经理绝对是必要条件。那就是systemd发挥作用的地方。简单来说,systemd由为Linux系统提供构建块的软件组成。与“ init”类似,它提供了一个在系统启动后管理用户进程的系统。对于我们的应用程序,systemd允许我们在系统重新启动后自动启动我们的网站,以防万一有可能中断系统正常运行时间的事件。它还提供了一套在管理我们的应用程序时会派上用场的工具。最好的部分是它内置于Ubuntu 16.04 LTS中,因此我们不需要安装任何其他软件。
启动应用程序所需的所有内容都将包含在名为的文件中service
。它包含有关我们的应用程序的详细信息,例如其名称,目录,环境等。要创建我们的系统文件,请打开文本编辑器。
sudo nano /lib/systemd/system/site.service
像这样编辑并保存文件。
[Unit]
Description=desc here
Documentation=https://example.com
After=network.target
[Service]
Environment=NODE_PORT=3000
Type=simple
User=youruser
ExecStart=/usr/bin/node /home/[youruser]/site/index.js
Restart=on-failure
[Install]
WantedBy=multi-user.target
替换youruser
为服务器的用户名。以下是重要字段的简要介绍:
After
-这通知systemd等待网络接口准备就绪,然后再启动我们的应用程序。Environment
-在这里我们可以为我们的应用程序指定环境变量。我们的Node.js端口就是其中之一。Type
-这通知systemd我们的应用程序可以启动,而不会产生用户特权等。User
-这告诉systemd我们建议使用我们的用户帐户运行该应用程序。以root用户身份运行应用程序可能会导致许多安全妥协。ExecStart
-本质上,systemd将运行以启动我们的应用程序的命令,类似于我们之前手动启动它的方式。Restart
-告诉systemd在什么条件下重新启动我们的应用程序。在这种情况下,如果发生错误,我们希望重新启动我们的网站。现在,我们准备开始我们的系统服务。
sudo systemctl daemon-reload
每当更改systemd服务文件以使systemd注册所做的任何新更改时,这都是必需的。
然后,启动您的应用程序。
sudo systemctl start site
再次浏览到浏览器中的站点,以确认一切正常。
stop
-完全停止应用程序。restart
-停止应用程序,然后在新过程中再次启动它。enable
-告诉systemd每当您启动计算机时都启动该应用程序。status
-显示有关当前正在运行的应用程序的信息,例如正常运行时间,应用程序状态等。要使用任何这些功能,请运行以下命令。
systemctl <function> site
我们已经成功建立了Koa.js应用程序,并学习了如何反向代理它以及如何使用systemd对其进行管理。现在,您准备扩展您的应用程序并在此示例的基础上进行构建。如果您想了解有关Koa.js的更多信息以及可以使用的更多功能,请访问其网站,以获取更多有用的信息。除此之外,如果您想了解有关systemd的流程管理器的更多信息,请在此处阅读有关它的文档。最后,如果您想了解有关Apache反向代理的更多信息,请随时在此处进行检查。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?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 部分
過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。