在Raspberry Pi 4 Model B上部署Node.js Web服务器的操作问询
树莓派4部署Node.js Web服务器实操步骤
1. 把本地的index.js传到树莓派
- 用scp命令(本地电脑终端执行):
比如本地文件在桌面,树莓派IP是192.168.1.100,就写:scp /你的本地文件路径/index.js pi@树莓派IP地址:/home/pi/scp ~/Desktop/index.js pi@192.168.1.100:/home/pi/ - 嫌命令麻烦的话,直接用U盘拷贝:把index.js存到U盘,插树莓派上,挂载后复制到
/home/pi目录就行
2. 先在树莓派本地跑通服务
- 登录树莓派终端,进入文件所在目录:
cd /home/pi - 启动服务:
node index.js - 打开树莓派自带的浏览器,访问
http://localhost:你的服务端口(比如index.js里监听的是3000,就输http://localhost:3000),确认页面能正常显示
3. 让其他电脑能访问树莓派上的Node服务
- 先开放对应端口:如果树莓派开了ufw防火墙,执行
sudo ufw allow 3000(替换成你的服务端口) - 用其他电脑的浏览器访问
http://树莓派IP:服务端口,比如http://192.168.1.100:3000,能打开就说明没问题
4. 处理Apache2和Node.js的端口冲突(可选)
如果想直接用80端口访问Node服务(不用输端口号),有两种方式:
方式一:停掉Apache,让Node用80端口
- 停止Apache服务:
sudo systemctl stop apache2,要是不想它开机自动启动,再加一句sudo systemctl disable apache2 - 用sudo权限启动Node服务(因为80端口是特权端口):
sudo node index.js - 现在其他电脑直接访问
http://树莓派IP就能看到Node服务的页面
方式二:用Apache反向代理(保留Apache)
- 启用Apache的代理模块:
sudo a2enmod proxy proxy_http - 创建虚拟主机配置文件:
sudo nano /etc/apache2/sites-available/nodejs.conf - 粘贴以下配置(替换成你的服务端口):
<VirtualHost *:80> ServerName 树莓派IP地址 ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ </VirtualHost> - 启用这个配置:
sudo a2ensite nodejs.conf - 重启Apache:
sudo systemctl restart apache2 - 现在访问
http://树莓派IP就会自动转发到Node服务
5. 设置Node服务开机自启(避免断电重启后要手动启动)
- 创建systemd服务文件:
sudo nano /etc/systemd/system/nodejs-server.service - 写入以下内容(注意替换
WorkingDirectory和ExecStart里的路径,确保和你的文件位置一致):[Unit] Description=Node.js Web Server After=network.target [Service] User=pi WorkingDirectory=/home/pi ExecStart=/usr/bin/node index.js Restart=always RestartSec=10 [Install] WantedBy=multi-user.target - 重新加载systemd:
sudo systemctl daemon-reload - 启动服务:
sudo systemctl start nodejs-server - 设置开机自启:
sudo systemctl enable nodejs-server - 可以用
sudo systemctl status nodejs-server查看服务运行状态
内容的提问来源于stack exchange,提问作者Michel
相关产品推荐
相关产品推荐

