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

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

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

接上回 教你在 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 开源论坛程序(二)” 的相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2024 巴黎奥运十位高颜值美女运动员榜单,你心目中的运动女神是谁呢?

2024 巴黎奥运十位高颜值美女运动员榜单,你心目中的运动女神是谁呢?

hey,体育迷们!奥运会不仅是竞技的舞台,也是魅力的展示平台。今天我们就来聊聊即将在巴黎奥运会上亮相的十大美女运动员。准备好了吗?我们这就开始倒数!文章目录1 第十名:基利·霍奇金森(英国田径)2 第九名:智田千阳(日本羽毛球)3 第八名:马胡奇克(乌克兰跳高)4 第七名:吴艳妮(中国田径)5 第六...

发表评论

访客

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