当前位置:首页 > 新鲜资讯 > 教你在 Ubuntu 22.04 系统上搭建 NodeBB 开源论坛程序(二)

教你在 Ubuntu 22.04 系统上搭建 NodeBB 开源论坛程序(二)

1年前 (2024-08-25)admin新鲜资讯86

接上回 教你在 Ubuntu 22.04 系统上搭建 NodeBB 开源论坛程序(一),虽然完成了 NodeBB 程序的搭建,但是如果采用 IP+ 端口的方式访问太 low 了,今天我们继续上节内容未完成的内容,继续补充完整剩余步骤。

文章目录

  • 1 三、配置反向代理
  • 2 四、使用 HTTPS 访问
  • 3 五、将 NodeBB 加入开机自启动进程

三、配置反向代理

  1. 配置反向代理我们使用 nginx 来进行,首先需要在本机安装 nginx 服务器。
sudo apt-get install -y nginx

2. 检测 nginx 是否安装成功,还是采用能否输出版本信息来判断。

nginx -v

3. 使 nginx 启动并且加入开机自启动,最后监测 nginx 运行状态。状态中有关键字:active,说明 nginx 出于运行状态。

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

4. 修改 nginx 配置文件

cd /etc/nginx/sites-available
sudo nano zerr.me

将下面的代码粘贴到 zerr.me 文件中,这会将使用 4567 端口导向使用 80 端口访问,这样就不用在网址后面输入4567 端口号。(注意:网址和 root路径请修改为自己的)

server {
listen 80;
listen [::]:80;

server_name zerr.me;

location ^~ /.well-known/ {
default_type "text/plain";
allow all;
root /var/www/nodebb;
}

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";
}
}

执行下列命令,使配置文件生效。

cd ../sites-enabled
sudo ln -s ../sites-available/zerr.me

执行下列命令检测配置文件是否有错误,无误的话重启 nginx。

sudo nginx -t
sudo systemctl reload nginx

此时,如果你已经将域名解析到IP,那么就可以通过域名访问。如果未能访问,则还是因为防火墙的原因,使用下列命令开放 80 端口即可。如果之前已经将防火墙彻底关闭,则不会出现该问题。

ufw allow 80

四、使用 HTTPS 访问

上述操作完成后,可以省去输入端口号,但是前面出现了不安全的字符。现在基本上所有的网站都使用 HTTPS 加密访问,所以我们也要为网站添加该功能,申请 SSL 证书,使用 HTTPS 更安全的访问。

  1. 使用 acme.sh 脚本生成论坛网站的 SSL证书,并手动配置Nginx。

使用 acme 申请证书前,需要停止 nginx 服务,否则会导致证书申请失败。

systemctl stop nginx

输入下列命令,申请证书。(请将域名更换为自己的域名,email 一项请填写自己的 email 邮件地址)

sudo apt-get install socat -y
sudo curl https://get.acme.sh | sh -s [email protected]
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt
~/.acme.sh/acme.sh --issue -d zerr.me --standalone

接下来,我们将证书导入到指定文件夹,比如我们将证书安装到下面路径中:

mkdir -p /var/www/nodebb/ssl
~/.acme.sh/acme.sh --install-cert -d zerr.me \
--key-file /var/www/nodebb/ssl/zerr.me.key \
--fullchain-file /var/www/nodebb/ssl/fullchain.cer \
--reloadcmd "service nginx force-reload"

打开 nginx 配置文件

cd /etc/nginx/sites-available
sudo nano zerr.me

删除之前的配置文件中的内容,更改为以下 nginx 配置:

server {
listen 80;
listen [::]:80;

server_name zerr.me;

location ^~ /.well-known/ {
default_type "text/plain";
allow all;
root /var/www/nodebb;
}

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";
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;

server_name zerr.me;

location ^~ /.well-known/ {
default_type "text/plain";
allow all;
root /var/www/nodebb;
}

ssl_certificate /var/www/nodebb/ssl/fullchain.cer;
ssl_certificate_key /var/www/nodebb/ssl/zerr.me.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;

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";
}
}

最后我们,再次检查一下 nginx 配置文件是否正确,无误的话重启 nginx,然后打开 443 端口(在这吃了很大亏,一直无法访问,后来才知道是 443 端口没打开,建议搭建之前直接使用命令打开所有常见端口,或者直接关闭防火墙,搭建完成后再按需打开)。

sudo nginx -t
sudo systemctl restart nginx
ufw allow 443

上图可见,可以使用 HTTPS 进行安全访问。

五、将 NodeBB 加入开机自启动进程

NodeBB 在系统重启后不会自动启动,为了防止因系统无故重启,导致 NodeBB 关闭,所以我们需要将 NodeBB 加入到系统开机自启动进程。

  1. 停止正在运行的 NodeBB 程序
cd /var/www/nodebb
./nodebb stop

2. 新建 nodebb.service systemd 系统进程文件

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

3.下面代码粘贴到编辑器中

[Unit]
Description=NodeBB
After=system.slice multi-user.target mongod.service

[Service]
Type=forking
User=nodebb
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=nodebb
Environment=NODE_ENV=production
WorkingDirectory=/var/www/nodebb
PIDFile=/var/www/nodebb/pidfile
ExecStart=/usr/bin/env node loader.js
Restart=always

[Install]
WantedBy=multi-user.target

根据需要替换你的用户名 User=nodebbWorkingDirectory=/var/www/nodebb 的路径。在这里我选择了在之前的步骤中创建的用户名 nodebb 以及我们选择在其中安装 NodeBB 的路径。

启用自启动 NodeBB 服务。

sudo systemctl enable nodebb
sudo systemctl start nodebb
sudo systemctl status nodebb

可通过执行以下操作启动和停止 NodeBB:

systemctl start nodebb
systemctl stop nodebb

最后,我们输入 reboot,重启启动后,查看是否可以访问 NodeBB 论坛。经过我的测试,再系统重启后可以正常访问论坛,至此,我们就完成了 NodeBB 论坛从环境部署到使用域名访问的全部过程,之后的备份和升级建议大家参考官方升级和备份教程。

参考资料:官方文档、开源论坛软件Nodebb 现代网络社区平台搭建教程。

推荐阅读

  • 2024年如何注册土耳其Apple ID账号
  • 加纳 Ghana 开通低价 YouTube 会员
  • 注册 Google账号的方法解决此电话号码无法用于验证
  • 低价订阅做图神器 Canva Pro 可画专业版会员

感谢打赏支持

豪鲁斯兴趣网论坛油管频道电报频道电报聊天

扫描二维码推送至手机访问。

版权声明:本文由豪鲁斯兴趣网发布,如需转载请注明出处。

本文链接:https://w.haolusi.com/?id=1535

分享给朋友:

“教你在 Ubuntu 22.04 系统上搭建 NodeBB 开源论坛程序(二)” 的相关文章

土耳其 iCloud 再次迎来翻倍涨价,土区居民哭了,数字土耳其人何去何从

土耳其 iCloud 再次迎来翻倍涨价,土区居民哭了,数字土耳其人何去何从

2024 年 8 月 21 日消息,土耳其 iCloud 价格再次迎来翻倍涨价。来自苹果官网的最新价格为价(兑换人民币的价格以博客发表时的汇率为准): 50GB:24.99 里拉/月 ~ 5.26元200GB:79.99 里拉/月 ~ 16.82元2TB:249.99 里拉/月 ~ 52.57元6T...

现在的网吧都这么高端了?记录和发小一起去网吧的经历,原来我是井底之蛙

现在的网吧都这么高端了?记录和发小一起去网吧的经历,原来我是井底之蛙

最近因为长期伏案工作,我身体出现了一些不适症状,如头痛和颈部疼痛。为了恢复健康,我暂时远离了电脑,博客停止更新了一段时间,增加了户外活动和家人互动时间。正当我享受着这段轻松时光时,一位发小邀请我去网吧体验。说实话,我已经记不清上次去网吧是什么时候了,但既然收到邀约,我也不好推辞。抱着好奇的心情,我们...

分享博客运营心得:博客访问量人数突然增多,吓得我赶紧去查看服务器日志

分享博客运营心得:博客访问量人数突然增多,吓得我赶紧去查看服务器日志

大家好,我是兔哥。今天跟大家分享一个有趣的经历:我的博客访问量突然暴增,吓得我赶紧去查看服务器日志。这个过程中,我不仅见证了一场精彩的奥运赛事,还发现了一些关于博客运营的有趣现象。文章目录1 情景复现2 突如其来的访问高峰3 分析访问日志4 从新手到小有成就5 博客运营的心得体会6 未来的期望与挑战...

最强密码管理软件 1Password 家庭组免费一年,用过之后回不去了

最强密码管理软件 1Password 家庭组免费一年,用过之后回不去了

最近,有网友发现,1Password 正在进行一个免费的活动,免费时间竟然长达一年!如果你还没有用过这款软件,现在就是个绝佳的机会。让我们一起来看看这个活动的详情,以及 1Password 的使用体验。文章目录1 1Password 免费一年2 1Password使用体验2.1 安全性与易用性2.2...

如何在 Windows 与 Mac 系统中永久禁用谷歌浏览器的自动更新?

如何在 Windows 与 Mac 系统中永久禁用谷歌浏览器的自动更新?

相信不少朋友都遇到过Chrome突然自己更新,结果打断了正在进行的工作,甚至还可能导致某些网页或插件不兼容的情况。别担心,我这就带大家一起来解决这个烦恼!浏览器和系统一样,频繁的自动更新可能会对当前工作或学习状态造成困扰。禁用 Chrome 更新可以确保完全控制浏览器更新的时间和方式,且最近 Goo...

你确定点击的是真正的 Google 链接吗?最新钓鱼骗局令人震惊

你确定点击的是真正的 Google 链接吗?最新钓鱼骗局令人震惊

大家好,我是兔哥。大家在使用搜索引擎搜索东西时,不知道有没有遇到过模仿的很像官网的钓鱼网站,今天我们来聊一个热门话题:黑客竟然在Google上冒充Google!这听起来有点匪夷所思,但确实发生了。让我们一起来看看这个令人震惊的网络安全事件。下图是一个模仿 Google 搜索的钓鱼网站,从搜索结果上很...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。