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

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

10个月前 (08-25)admin新鲜资讯39

接上回 教你在 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 独立博客的内容释然了

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

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

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

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

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

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

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

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

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

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

2024 巴黎奥运会闭幕式时间与直播平台、直播源、在线网站全渠道汇总

2024 巴黎奥运会闭幕式时间与直播平台、直播源、在线网站全渠道汇总

巴黎奥运会的精彩赛事即将画上句号,相信大家都不想错过闭幕式这场视觉盛宴吧?今天,我们就来聊聊2024巴黎奥运会闭幕式的相关信息,以及如何观看这场盛大的闭幕仪式。首先,让我们回顾一下开幕式引发的争议。开幕式被网友评价为”大尺度“、”辣眼睛“,甚至奥运会官...

发表评论

访客

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