如何在 Ubuntu 24.04 服务器上使用 Nginx 代理安装 NodeBB如何在 Ubuntu 24.04 服务器上使用 Nginx 代理安装 NodeBB如何在 Ubuntu 24.04 服务器上使用 Nginx 代理安装 NodeBB如何在 Ubuntu 24.04 服务器上使用 Nginx 代理安装 NodeBB
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 24.04 服务器上使用 Nginx 代理安装 NodeBB

本教程适用于这些操作系统版本

  • Ubuntu 24.04(高贵食蚁兽)
  • Ubuntu 22.04(果酱水母)
  • Ubuntu 20.04(焦窝)
  • Ubuntu 18.04(仿生海狸)

在此页面上

  1. 先决条件
  2. 安装 MongoDB 服务器
  3. 为 NodeBB 设置 MongoDB 服务器和数据库
  4. 安装NodeBB
  5. 将 NodeBB 作为 systemd 服务运行
  6. 将 Nginx 设置为反向代理
  7. 使用 HTTPS 保护 NodeBB
  8. 接入NodeBB
  9. 结论

NodeBB 是一款基于 Node.js 的开源论坛软件,为在线社区提供现代且响应迅速的解决方案。 NodeBB 在 Ubuntu Linux 上运行,利用操作系统的稳健性和灵活性来提供高性能和可扩展性。它结合使用 MongoDB 或 Redis 进行数据库管理,使其能够高效处理大量用户生成的内容。 NodeBB 以其实时通知、与各种社交媒体平台的无缝集成以及广泛的插件生态系统而闻名,允许管理员自定义其论坛以满足特定需求。此外,其移动优先设计可确保在所有设备上提供一致且引人入胜的用户体验。 Ubuntu 的稳定性和安全性功能与 NodeBB 相得益彰,使其成为托管和管理动态在线社区的理想选择。

在本指南中,您将学习如何在 Ubuntu 24.04 服务器上安装 NodeBB 以及 MongoDB 数据库和 Nginx Web 服务器。您还将了解如何通过 Certbot 和 Letsencrypt 使用 HTTPS 保护 NodeBB。

先决条件

要开始使用本指南,请确保您拥有:

  • Ubuntu 24.04 服务器。
  • 具有管理员权限的非 root 用户。
  • 域名指向服务器IP地址。

安装 MongoDB 服务器

NodeBB 使用 Node.js 编写,并使用 MongoDB 作为数据库。要安装 NodeBB,您必须在系统上安装 MongoDB 服务器。在本部分中,您将在 Ubuntu 24.04 服务器上安装 MongoDB 服务器 7。

首先,运行以下命令将 gnupg 和curl 软件包安装到您的 Ubuntu 系统。

sudo apt install gnupg curl

现在使用以下命令添加 MongoDB 的 GPG 密钥和存储库。目前,MongoDB 7.0 仅适用于 Ubuntu 22.04,因此我们将在 Ubuntu 24.04 服务器上使用它。

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc |
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg
–dearmor
echo “deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

接下来,运行以下 apt 命令来更新 Ubuntu 软件包索引并安装 mongodb-org 软件包。输入 Y 确认安装。

sudo apt update
sudo apt install mongodb-org

安装完成后,运行下面的systemctl命令来重新加载systemd管理器。这是因为新的服务文件 mongod 已添加到您的系统中。

sudo systemctl daemon-reload

现在运行下面的 systemctl 命令来启动并启用 MongoDB mongod 服务。然后,检查其状态以确保 mongod 服务正在运行。

sudo systemctl enable --now mongod
sudo systemctl status mongod

如下所示,mongod 服务已启用并正在运行。

为 NodeBB 设置 MongoDB 服务器和数据库

安装 MongoDB 服务器后,您将在 MongoDB 上启用身份验证,创建管理员用户,然后为 NodeBB 安装创建新用户和数据库。

使用下面的 mongosh 客户端命令登录 MongoDB shell。

mongosh

在 mongosh shell 上,切换到 admin 数据库并为 MongoDB 创建一个新的 admin 用户。在此示例中,您将创建一个 MongoDB 用户 admin,密码为 MongoDBAdminPass。确保使用您的信息更改用户详细信息。

use admin
db.createUser( { user: “admin”, pwd: “MongoDBAdminPass”, roles: [ { role: “root”, db: “admin” } ] } )

之后,切换并创建数据库nodebb,然后创建一个新用户nodebb,密码NodeBBPassword。数据库和用户nodebb 将用于NodeBB 安装。

use nodebb
db.createUser( { user: “nodebb”, pwd: “NodeBBPassword”, roles: [ { role: “readWrite”, db: “nodebb” }, { role: “clusterMonitor”, db: “admin” } ] } )

现在输入 quit() 以退出 mongosh shell。

quit()

接下来,使用以下 Nano 编辑器打开默认 MongoDB 配置 /etc/mongod.conf。

sudo nano /etc/mongod.conf

取消注释安全选项并将授权更改为启用。这将在您的 MongoDB 服务器上启用身份验证。

security:
  authorization: enabled

完成后,保存文件并退出编辑器。

现在运行下面的 systemctl 命令来重新启动 mongod 服务并应用您的更改。重启mongod服务后,将启用MongoDB认证。

sudo systemctl restart mongod

运行下面的 mongosh 命令以用户 nodedbb 身份连接到数据库 nodebb。出现提示时输入您的密码。

mongosh “mongodb://127.0.0.1:27017” --username nodebb --authenticationDatabase nodebb

现在运行以下查询来检查与 MongoDB 服务器的连接。

db.runCommand( { connectionStatus: 1, showPrivileges: false } )

下面,您已作为用户 nodebb 向数据库 nodebb 进行了身份验证。

输入 quit() 以退出 MongoDB shell。

安装NodeBB

现在您已经配置了 MongoDB 服务器,您将通过官方 Ubuntu 存储库安装 Node.js,然后在您的 Ubuntu 系统上下载并安装 NodeBB。

在安装 NodeBB 之前,请运行以下 apt 命令将 Node.js 和 NPM 软件包安装到您的 Ubuntu 系统。输入 Y 确认安装。

sudo apt install nodejs npm

安装后,使用以下命令检查 Node.js 和 NPM 版本 - 您可以看到 Node.js 18 和 NPM 9 已安装。

node --version
npm --version

现在运行以下命令来创建新的系统用户和组nodebb。该用户将用于运行 NodeBB 安装。

sudo adduser --system --no-create-home --home=/opt/nodebb --group nodebb

执行下面的git命令,将NodeBB源码下载到/opt/nodebb目录下,然后将其所有权修改为nodebb用户。

git clone -b v3.x https://github.com/NodeBB/NodeBB.git /opt/nodebb
sudo chown -R nodebb:nodebb /opt/nodebb

进入/opt/nodebb目录,执行nodebb setup命令开始NodeBB安装。

cd /opt/nodebb
sudo su -s /bin/bash -c “./nodebb setup” nodebb

系统会询问您以下 NodeBB 配置:

  • 输入您的 NodeBB 域名,例如forum.howtoforge.local。
  • 在 NodeBB 秘密配置上按 ENTER 键。将其保留为默认值。
  • 输入 no 以禁用对 NodeBB 的匿名访问。
  • 选择 MongoDB 作为数据库。
  • 输入您的 MongoDB 数据库详细信息,格式如下:mongodb://nodebb:[email :27017/nodebb。
  • 输入 NodeBB 的新管理员用户和电子邮件地址。
  • 输入 NodeBB 管理员用户的密码并重复。

安装完成后,您将看到输出NodeBB Setup Completed。

要从命令行运行 NodeBB,请执行以下 nodebb start 命令:

sudo su -s /bin/bash -c "./nodebb start" nodebb

要设置 NodeBB 进程,请使用下面的 nodebb stop 命令。

sudo su -s /bin/bash -c "./nodebb stop" nodebb

将 NodeBB 作为 systemd 服务运行

在本指南中,您将在后台将 NodeBB 作为 systemd 服务运行。现在,您将为 NodeBB 创建一个新的服务文件,这使得通过 systemctl 实用程序管理 NodeBB 服务变得更加容易。

使用以下 Nano 编辑器创建新的 systemd 服务文件 /etc/systemd/system/nodebb.service。

sudo nano /etc/systemd/system/nodebb.service

粘贴 NodeBB 的以下服务文件。在此示例中,您将以 nodebb 用户身份运行 nodebb 服务。

[Unit]
Description=NodeBB
Documentation=https://docs.nodebb.org
After=system.slice multi-user.target mongod.service
[Service]
Type=simple
User=nodebb
StandardError=syslog
SyslogIdentifier=nodebb
Environment=NODE_ENV=production
WorkingDirectory=/opt/nodebb
ExecStart=/usr/bin/env node loader.js --no-silent --no-daemon
Restart=always
[Install]
WantedBy=multi-user.target

完成后保存文件并退出编辑器。

现在运行下面的 systemctl 命令来重新加载 systemd 管理器并应用您的更改。

sudo systemctl daemon-reload

之后,使用以下命令启动、启用并验证 nodebb 服务。

sudo systemctl enable --now nodebb
sudo systemctl status nodebb

您可以在下面看到nodebb 服务作为systemd 服务在后台运行。

将 Nginx 设置为反向代理

在本教程中,您将使用 Nginx Web 服务器作为 NodeBB 的反向代理。现在您将安装 Nginx,并为反向代理创建一个新的服务器块。确保您的域名指向服务器 IP 地址。

使用以下 apt install 命令将 Nginx Web 服务器安装到您的系统。

sudo apt install nginx -y

安装完成后,使用 nano 编辑器创建一个新的服务器块配置 /etc/nginx/sites-available/nodebb。

sudo nano /etc/nginx/sites-available/nodebb

插入以下配置并确保将 forum.howtoforge.local 更改为您的域名。这样,您将为在后台端口 4567 上运行的 NodeBB 设置反向代理。

server {
 listen 80;
 server_name forum.howtoforge.local;
 location / {
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;
 proxy_set_header Host $http_host;
 proxy_set_header X-NginX-Proxy true;
 proxy_pass http://127.0.0.1:4567;
 proxy_redirect off;
 # Socket.IO Support
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
 }
}

保存文件并退出编辑器。

现在运行以下命令来激活服务器块文件nodebb并验证您的Nginx配置。如果您正确并且具有正确的 Nginx 配置,您将看到输出syntax is ok - test is success。

sudo ln -s /etc/nginx/sites-available/nodebb /etc/nginx/sites-enabled/
sudo nginx -t

最后,运行下面的 systemctl 命令来重新启动 Nginx 服务并应用更改。然后,检查 Nginx 服务状态以确保其正在运行。

sudo systemctl restart nginx
sudo systemctl status nginx

正如您在下面的输出中看到的,Nginx 服务正在运行。

使用 HTTPS 保护 NodeBB

在本部分中,您将通过 Certbot 和 Letsencrypt 使用 HTTPS 保护 NodeBB。结合 Certbot 和 Nginx,您可以在 Web 服务器上设置自动 HTTPS。

使用以下命令安装 certbot 和 python3-certbot-nginx 软件包:

sudo apt install certbot python3-certbot-nginx -y

现在运行下面的 certbot 命令来生成 SSL 证书并使用 HTTPS 保护您的 NodeBB 安装。请务必使用您的信息更改电子邮件地址和域名。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email  -d forum.howtoforge.local

该过程完成后,您将在 /etc/letsencrypt/live/domain.com 目录中看到您的证书。您的 NodeBB 安装将自动使用 HTTPS 进行保护。

接入NodeBB

使用 Web 浏览器打开您的 NodeBB 域名,例如 https://forum.howtoforge.local。如果安装成功,您将看到 NodeBB 的默认主页,如下所示:

单击登录链接,系统将提示您进入 NodeBB 登录页面。然后,输入您的管理员用户和密码,然后单击登录进行确认。 如果您拥有正确的凭据,您将看到以下管理仪表板。

在 NodeBB 管理设置中,您将看到以下内容:

结论

恭喜!您已在 Ubuntu 24.04 服务器上安装了开源论坛软件 NodeBB。您已启动并运行 NodeBB,并使用 MongoDB 作为数据库和 Nginx 作为反向代理。您还通过 Certbot 和 Letsencrypt 使用 HTTPS 保护 NodeBB。您现在可以添加 SMTP 服务器以通过电子邮件链接设置注册和确认。

©2015-2025 艾丽卡 support@alaica.com