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

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

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

接上回 教你在 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...

写博客突然给我带来了压力,直到我看到一篇 innei 独立博客的内容释然了

写博客突然给我带来了压力,直到我看到一篇 innei 独立博客的内容释然了

写博客,是发自内心的,没有人的逼迫的,是想写什么就写什么的,我可以写下一遍技术的文章,不管写的好坏,至少是我经历过的,当然如果能够得到读者的称赞,那也是每个作者感到庆幸的。或许有一段时间内,我会产出比较多的文章, 再或者有很长的时间我没有任何产出,我不必为此感到焦虑。这不是任务,只是一种乐于分享的精...

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

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

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

张本智和、早田希娜、石川佳纯人设反转,如何看待几人的参拜事件

张本智和、早田希娜、石川佳纯人设反转,如何看待几人的参拜事件

今日,新浪、抖音被马龙取关石川佳纯、孙颖莎与樊正东取关早田希娜的新闻霸榜,究其原因是因为三者均因与参拜日本战犯而引起国人愤怒情感。最让人无法接受的是石川佳纯,这位日本乒乓球女队曾经的璀璨星辰,在巴黎奥运会半决赛后,她赠与中国女团的徽章,不仅是对对手的尊重,更是跨越国界的友谊桥梁。尤其是她特意委托陈梦...

如何查询Apple App Store在不同国家(如土耳其、尼日利亚等)的应用及订阅价格?

如何查询Apple App Store在不同国家(如土耳其、尼日利亚等)的应用及订阅价格?

大家好,我是兔哥。今天我们来聊一个实用的小技巧:如何轻松查询Apple App Store(如土耳其、尼日利亚等)在不同国家的应用及订阅价格。相信很多朋友都有过这样的经历:听说某些国家的App订阅价格特别便宜,但又不知道怎么查询。今天,我就来教大家一个简单又实用的方法!文章目录1 全球数字订阅服务的...

网友想通过 Claude 会员生成无法被检测出 AI 写作的文章,没想到…

网友想通过 Claude 会员生成无法被检测出 AI 写作的文章,没想到…

一名国外网友声称,在与 Claude AI 进行交谈时,这款 AI 模型声称”违背了我所理解的他们的原则和方法“。更令人震惊的是,当这名网友提到自己是付费用户时,Claude AI 声称”我是免费提供给人们交谈的。Anthropic 的目标是负责任地推进 AI 研...

发表评论

访客

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