如何在CentOS 7上安装Oxwall
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
Hapi.js是一个丰富,强大且功能强大的Node.js框架,旨在在Node.js生态系统中构建Web应用程序。其直接的设计使其易于上手。Hapi的核心使用了许多最新的JavaScript ES6功能,例如ES6 Promise。对于以前使用过Express的用户,Hapi允许您尝试一些新东西,并体验所有最新的JavaScript功能。
在本教程中,我们的目标是在Ubuntu 16.04 LTS上建立一个基本的Hapi.js网页,该网页由我们的Vultr VPS托管。对于那些为其网站拥有域名的用户,我们将使用反向代理将我们的域名链接到我们的网站。最后,我们将学习如何使用流程管理器进行管理。现在我们已经解决了这个问题,让我们开始吧。
我们将需要安装Node.js。为此,请在Ubuntu 16.04 LTS上执行以下操作。
我们将需要添加NodeSource APT存储库,其中包含Node.js的最新LTS版本。
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
我们正在下载一个脚本,该脚本将用于将存储库添加到源列表中,以及从NodeSource存储库安装Node.js。
除了安装Node.js本身之外,我们还需要安装一些必要的构建工具,这些工具将有助于构建我们可能需要安装的任何模块。
sudo apt-get install -y build-essential
这只是从存储库下载并安装构建工具。
优良作法是指定一个我们将用于我们应用程序的文件夹,其中将包含我们所有应用程序的数据,例如配置文件和启动脚本。创建一个文件夹,将其命名为任意名称。为了本教程的缘故,我假设您将其命名为site
。
mkdir site
制作完文件夹后,现在我们可以更改它了。确保您在刚刚创建的目录中,启动NPM软件包向导。
npm init
它将要求您输入一些不同的内容,例如您的应用程序名称,起始文件,许可证等。除了更明显的字段(例如,应用程序的名称)外,大多数字段都可以保留默认值。最后,它将如下所示:
{
"name": "site",
"version": "1.0.0",
"description": "Hapi.js site",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "rich",
"license": "MIT"
}
对结果感到满意后,单击ENTER以保存文件。
现在您的目录已成功构建,我们现在可以继续安装Hapi.js。如前所述,我们将利用NPM为我们的项目下载Hapi.js及其依赖项。在项目目录中,运行以下命令。
npm install hapi.js
这将从NPM下载Hapi.js并将其安装在我们的项目目录中。在同一运行中,为方便起见,还下载了Hapi.js可能依赖的任何依赖项。
现在是时候设置基本的Hapi.js应用程序文件了。这将包含我们针对该应用程序的所有代码。再往前走,我们可以扩展应用程序代码,并在需要时添加更多内容。
接下来,我们将创建我们的起始文件。返回文件main
部分package.json
,以准确确定如何命名文件。由于我使用默认的命名方案,因此我们的文件将称为index.js
。
nano index.js
进入nano文本编辑器后,像这样创建基本的应用程序代码。
const Hapi=require('hapi');
const server=Hapi.server({
host:'localhost',
port: 3000
});
server.route({
method:'GET',
path:'/',
handler:((request,h)) => {
return 'Sample Hapi.js Application';
}
});
async function start() {
try {
await server.start();
} catch (err) {
console.log(err);
process.exit(1);
}
console.log(`Our server is running! ${server.info.uri}`);
};
start();
首先,我们导入Hapi模块。然后,我们初始化服务器构造函数,该构造函数包含要在其上运行服务器的主机以及端口,该端口3000
用于本教程。接下来,我们设置一个基本路由器,该路由器指示每当有人访问该站点时,他们都会收到一条简单的消息。最重要的是,我们具有一个异步功能来启动服务器,该功能将登录到服务器正在运行的控制台。完成后,保存并关闭文件(CTRL+ X)
现在我们的主文件已经设置好,我们准备启动我们的应用程序。
node index.js
如果您Our server is running!
在控制台中看到“ ”,则服务器已成功启动。
由于Nginx在默认的Ubuntu存储库中可用,因此安装非常简单。只需更新您的软件包列表,然后安装它。
sudo apt update
sudo apt install nginx -y
刷新软件包列表后,将安装Nginx及其依赖项。
为了使Nginx反向代理我们的应用程序,我们需要创建一个配置文件。此配置文件将保存有关我们的应用程序的信息,Nginx将其用于反向代理。
删除Nginx创建的默认配置,因为稍后将用我们自己的默认配置替换它。
sudo rm /etc/nginx/sites-enabled/default
在sites-available
文件夹中创建一个新文件。至于命名site
,为了简单起见,我们可以坚持使用简单。
sudo nano /etc/nginx/sites-available/site
在文件中,粘贴以下内容并保存。
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:3000/;
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监听port 80
。我们还将代理服务器直通设置为localhost
地址和端口3000
,这与我们的Hapi应用程序相同。
现在,您可以导航回到您的应用程序目录,并启动该站点。网站启动后,只需导航至http://yourdomain.com
或http://yourip
,您将看到文本“ Hello World
”。
可以在NPM存储库中找到PM2,并且可以将其全局安装,以便可以从任何地方访问。
sudo npm install pm2 -g
-g
末尾的标志表示我们要将模块安装到全局模块文件夹,这将使我们可以在项目目录之外使用它。这是为了使我们的项目像普通的系统应用程序一样工作。
安装PM2后,导航回到您的项目目录。现在,启动我们的应用程序的语法会稍有不同。这就是我们将如何使���PM2做到这一点。
pm2 start index.js --name site
我们利用PM2启动功能,该功能基本上是为应用程序创建一个名为的配置文件site
。运行该命令后,您的网站将启动,但是您会注意到日志不会显示。这是因为我们现在查看日志的方式不同。
pm2 logs site
您甚至可以使用参数指定要查看的日志行数--lines
。
您已经成功设置了Hapi.js Web服务器,使用Nginx对其进行了反向代理,并了解了如何使用PM2更好地对其进行管理。有了这些知识,您就可以进一步扩展本教程并制作一个非常高级的Hapi.js应用程序。要了解有关Hapi可能性的更多信息,请访问其官方文档。如果您想了解有关PM2可能性的更多信息,请参阅其快速入门指南。
Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,
使用其他系统?Review Board是一个免费且开源的工具,用于检查源代码,文档,图像等。这是基于网络的软件战
使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)
Xubuntu是XFCE + Ubuntu!XFCE是Ubuntu的轻量级GUI /桌面。Vultr服务器需要其他依赖项,默认情况下未安装这些依赖项。
使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具
简介SSL(代表安全套接字层)及其后续版本TLS(代表传输层安全性)是需要加密的加密协议。
使用其他系统?MODX Revolution是一种快速,灵活,可扩展,免费和开源的企业级内容管理系统(CMS),由
朱莉娅(Julia)通常称为JuliaLang,是一种用于数值计算的编程语言。Julia的速度和C一样快,但是却不牺牲可读性
Ruby on Rails(RoR)是用Ruby编程语言编写的框架,可让您将Ruby与HTML,CSS和类似的程序结合使用。
使用其他系统?Anchor是用PHP编写的轻量级开源博客CMS。Anchors源代码托管在GitHub上。本指南将向您展示
简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin
在Linux服务器上正确设置日期和时间非常重要。您的服务器日志和其他重要信息都将反映时区
使用其他系统?Taiga是用于项目管理的免费和开源应用程序。与其他项目管理工具不同,Taiga使用增量
本文是有关在Ubuntu 14.04上安装和配置Nagios的2部分系列文章的一部分。第1部分:Nagios服务器第2部分:远程主机概述Nagio
Vultr提供了几种不同的方式来访问VPS以进行配置,安装和使用。访问凭据VPS ar的默认访问凭据
使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何
使用其他系统?Pagekit 1.0 CMS是一个美观,模块化,可扩展,轻量级,免费和开源的内容管理系统(CMS),具有
使用其他系统?BigTree CMS 4.2是一种快速,轻量级,免费和开源的企业级内容管理系统(CMS),具有广泛的功能。
FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o
简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。
学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息