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

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

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

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

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

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

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

停止关注新闻是我做出的最佳生活方式决定之一,仅次于戒掉社交媒体(转)

停止关注新闻是我做出的最佳生活方式决定之一,仅次于戒掉社交媒体(转)

分享一篇来自于 chuck 关于新闻是信息垃圾食品的博文,作者将新闻与我们的常见的食品类比,觉得蛮有道理,和大家分享。原文为英文,有兴趣的可以点击阅读原文。下面是通过 AI 翻译过后的中文内容。近年来,停止关注新闻是我做出的最佳生活方式决定之一,仅次于戒掉社交媒体(尽管两者并不互斥)。减少摄入这些本...

谷歌表示,它有义务向美国政府披露用户的机密信息

谷歌表示,它有义务向美国政府披露用户的机密信息

谷歌告知用户,它有义务与美国当局分享机密数据,这引发了隐私问题,并强调了大型科技公司的数据安全问题。搜索巨头谷歌向用户发送了一封电子邮件,告知他们有义务向美国政府当局披露某些机密信息。对于科技爱好者来说,这并不奇怪,因为一直有暗示政府可以访问用户数据。互联网上一直存在着永无止境的隐私问题,尤其是在用...

为什么信用卡被称为“银行中最赚钱的产品”以及维萨万事达卡是如何赚钱?

为什么信用卡被称为“银行中最赚钱的产品”以及维萨万事达卡是如何赚钱?

大家好,我是兔哥。最近,网络上看到一张关于 VISA/Master 维萨万事达卡如何赚钱的支付流程图,想和大家分享一下为什么信用卡被称为“银行中最赚钱的产品”以及 VISA/Master 维萨万事达卡是如何赚钱的。我们一起来看看吧。文章目录1 信用卡的利润来源2 VISA 和 Mastercard...

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

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

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

发表评论

访客

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