如何在 Ubuntu 22.04 上安装 Sails.js 框架
Sails 是一个实时 MVC 框架,用于构建生产就绪的企业 Node.js 应用程序。 它是帮助您快速创建网站和原型网站的绝佳工具。 它构建在 Node JS 和 Express JS 之上,因此所有适用于 NodeJS 和 Express 的内容都可以与 Sails JS 一起使用。 它支持可扩展的 WebSockets、面向服务的架构以及同一项目中的多个数据存储,并提供基本的安全性和基于角色的访问控制。
这篇文章将向您展示如何在 Ubuntu 22.04 上使用 Apache 安装 Sails.js 作为反向代理。
先决条件
- 运行 Ubuntu 22.04 的服务器。
- 服务器上配置了 root 密码。
入门
在开始之前,建议将您的软件包更新到最新版本。 您可以通过运行以下命令来更新所有这些:
apt update -y
apt upgrade -y
更新所有软件包后,使用以下命令安装其他所需的依赖项:
apt-get install curl wget gnupg2 -y
完成后,您可以继续下一步。
安装 Node.js
接下来,您需要安装 Node.js 和 NPM 来创建 Sails.js 应用程序。 首先,使用以下命令添加 Node.js 存储库:
curl -sL https://deb.nodesource.com/setup_16.x | bash -
添加存储库后,使用以下命令安装 Node.js 包:
apt-get install nodejs -y
安装完成后,您可以使用以下命令验证 Node.js 版本:
node --version
您将在以下输出中获得 Node.js 版本:
v16.17.1
安装 Sails.js
接下来,您需要在服务器上安装 Sails.js。 您可以使用节点包管理器安装 Sails。
npm -g install sails
安装 Sails 后,您可以使用以下命令验证它:
sails --version
您将在以下输出中获得 Sails 版本:
1.5.3
创建 Sails.js 应用程序
安装 Sails 后,让我们使用以下命令创建一个简单的 Sails 应用程序:
sails new sails-app
您应该得到以下输出:
Choose a template for your new Sails app: 1. Web App · Extensible project with auth, login, & password recovery 2. Empty · An empty Sails app, yours to configure (type "?" for help, or to cancel) ? 2 info: Installing dependencies... Press CTRL+C to cancel. (to skip this step in the future, use --fast) info: Created a new Sails app `sails-app`!
您可以使用以下命令验证 Sails 创建的所有文件:
ls sails-app
您应该看到以下输出:
api app.js assets config Gruntfile.js node_modules package.json package-lock.json README.md tasks views
接下来,将目录更改为 Sails 应用程序并使用以下命令启动应用程序:
cd sails-app
sails lift
您应该看到以下输出:
info: Starting app... info: info: .-..-. info: info: Sails <| .-..-. info: v1.5.3 |\ info: /|.\ info: / || \ info: ,' |' \ info: .-'.-==|/_--' info: `--'-------' info: __---___--___---___--___---___--___ info: ____---___--___---___--___---___--___-__ info: info: Server lifted in `/root/sails-app` info: To shut down Sails, press + C at any time. info: Read more at https://sailsjs.com/support. debug: ------------------------------------------------------- debug: :: Sun Sep 25 2022 05:43:59 GMT+0000 (Coordinated Universal Time) debug: Environment : development debug: Port : 1337 debug: -------------------------------------------------------
按 CTRL+C 停止应用程序。 我们将创建一个 systemd 服务文件来启动和管理 Sails 应用程序。
为 Sails.js 创建 Systemd 服务文件
接下来,您需要创建一个 systemd 服务文件来管理 Sails.js 应用程序。 您可以使用以下命令创建它:
nano /etc/systemd/system/sails-app.service
添加以下行:
[Unit] After=network.target [Service] Type=simple User=root WorkingDirectory=/root/sails-app ExecStart=/usr/bin/sails lift Restart=on-failure [Install] WantedBy=multi-user.target
保存并关闭文件,然后重新加载 systemd 守护进程以应用更改:
systemctl daemon-reload
接下来,启动 Sails.js 服务并使其在系统重新启动时启动:
systemctl start sails-app
systemctl enable sails-app
您现在可以使用以下命令检查 Sails 应用程序的状态:
systemctl status sails-app
您应该得到以下输出:
? sails-app.service Loaded: loaded (/etc/systemd/system/sails-app.service; disabled; vendor preset: enabled) Active: active (running) since Sun 2022-09-25 05:44:42 UTC; 6s ago Main PID: 2896 (node) Tasks: 22 (limit: 4579) Memory: 159.2M CPU: 3.676s CGroup: /system.slice/sails-app.service ??2896 node /usr/bin/sails lift ??2903 grunt "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "> Sep 25 05:44:44 ubuntu2204 sails[2896]: info: ____---___--___---___--___---___--___-__ Sep 25 05:44:44 ubuntu2204 sails[2896]: info: Sep 25 05:44:44 ubuntu2204 sails[2896]: info: Server lifted in `/root/sails-app` Sep 25 05:44:44 ubuntu2204 sails[2896]: info: To shut down Sails, press + C at any time. Sep 25 05:44:44 ubuntu2204 sails[2896]: info: Read more at https://sailsjs.com/support. Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: ------------------------------------------------------- Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: :: Sun Sep 25 2022 05:44:44 GMT+0000 (Coordinated Universal Time) Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: Environment : development Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: Port : 1337 Sep 25 05:44:44 ubuntu2204 sails[2896]: debug: -------------------------------------------------------
此时,Sails 应用程序已启动并侦听端口 1337。您现在可以继续下一步。
将 Apache 配置为 Sails.js 的反向代理
将 Apache 配置为反向代理来访问 Sails 应用程序是一个好主意。 首先,使用以下命令安装 Apache 服务器:
apt install apache2 -y
安装 Apache 软件包后,使用以下命令创建 Apache 虚拟主机配置文件:
nano /etc/apache2/sites-available/sails.conf
添加以下行:
ServerName sailsapp.example.com ServerAdmin [email protected] DocumentRoot /root/sails-app ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyPass http://127.0.0.1:1337 ProxyPassReverse http://127.0.0.1:1337 ProxyPass ! RewriteEngine On RewriteCond %{REQUEST_URI} ^/socket.io [NC] RewriteCond %{QUERY_STRING} transport=websocket [NC] RewriteRule /(.*) ws://localhost:1337/$1 [P,L]
保存并关闭文件,然后使用以下命令激活 Sails 虚拟主机:
a2ensite sails.conf
接下来,使用以下命令启用其他 Apache 模块:
a2enmod headers proxy_http xml2enc proxy ssl proxy_wstunnel rewrite proxy_ajp deflate proxy_balancer proxy_connect proxy_html
接下来,重新启动 Apache 服务以应用更改:
systemctl restart apache2
您现在可以使用以下命令验证 Apache 服务状态:
systemctl status apache2
您应该得到以下输出:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2022-09-25 05:46:54 UTC; 2s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 3986 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 3990 (apache2) Tasks: 55 (limit: 4579) Memory: 6.8M CPU: 90ms CGroup: /system.slice/apache2.service ??3990 /usr/sbin/apache2 -k start ??3991 /usr/sbin/apache2 -k start ??3992 /usr/sbin/apache2 -k start Sep 25 05:46:54 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...
目前,Apache Web 服务器已安装并配置为 Sails.js 应用程序的反向代理。 您现在可以继续下一步。
访问 Sails.js Web UI
现在,您可以打开 Web 浏览器并使用 URL http://sailsapp.example.com 访问 Sails.js Web 界面。 您应该在以下屏幕上看到 Sails.js Web UI:
结论
恭喜 您已在 Ubuntu 22.04 上成功安装了 Sails.js,并使用 Apache 作为反向代理。 您现在可以使用 Sails.js 框架托管可扩展且可用于生产的 Web 应用程序。 如果您有任何疑问,请随时问我。
资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载