从零到一:Jetlinks物联网平台服务器部署实战与避坑指南
2026/6/19 19:49:15 网站建设 项目流程

1. 环境准备:从零搭建Linux服务器

第一次在Linux服务器上部署Jetlinks物联网平台时,我踩了不少坑。记得当时连最基本的SSH连接都折腾了半天,后来才发现是防火墙没开22端口。为了避免大家重蹈覆辙,我把完整的准备工作整理如下。

远程连接工具选择:推荐使用MobaXterm或FinalShell这类全能型工具,它们集成了SSH终端、SFTP文件传输和X11转发功能。特别是MobaXterm的拖拽上传功能,在部署前端代码时特别方便。不过要注意,如果用root账户登录,千万别手贱乱删系统文件——我就因为误删.ssh目录导致服务器无法连接,最后只能重置系统。

系统基础配置:Ubuntu/Debian系统建议先执行这两个黄金命令:

sudo apt update sudo apt upgrade -y

这不仅能更新软件源,还会自动升级所有已安装的包。遇到过几次依赖冲突问题,都是因为跳过了这步直接安装环境。

2. 核心环境安装与配置

2.1 Java环境搭建

Jetlinks社区版要求JDK 8环境,但千万别随便找个OpenJDK就装。实测发现Amazon Corretto 8的稳定性最好,内存管理更优:

sudo apt install -y software-properties-common sudo add-apt-repository ppa:linuxuprising/java sudo apt update sudo apt install -y corretto-8-jdk

配置JAVA_HOME时有个小技巧:不用手动写路径,用这个命令自动获取:

echo "export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))" >> ~/.bashrc source ~/.bashrc

2.2 Maven优化配置

默认源的Maven下载速度慢到怀疑人生,建议先修改settings.xml:

<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>

安装时记得加上-D参数跳过测试:

mvn clean package -Dmaven.test.skip=true -T 4C

这里的-T 4C能让Maven使用4核并行编译,速度提升300%不止。

3. 后端部署实战技巧

3.1 源码获取与编译

从GitHub克隆代码时,如果遇到网络问题,可以改用Gitee镜像源:

git clone https://gitee.com/jetlinks/jetlinks-community.git --depth 1

加上--depth 1参数只克隆最新提交,能节省80%的下载时间。

编译时常见内存溢出问题,需要调整Maven内存限制:

export MAVEN_OPTS="-Xmx2048m -XX:MaxPermSize=1024m"

3.2 Docker避坑指南

docker-compose up -d经常卡住?先修改daemon.json配置国内镜像源:

{ "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://registry.hub.docker.com" ], "debug": true, "experimental": false }

重启服务后记得检查日志:

sudo systemctl restart docker docker-compose logs -f

4. 前端部署与Nginx调优

4.1 Node.js环境配置

别用apt直接装Node.js!版本老旧会导致各种兼容性问题。推荐用nvm管理:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash nvm install 16 npm config set registry https://registry.npmmirror.com

4.2 内存溢出解决方案

前端build时90%会报JavaScript堆内存不足,必须增加内存限制:

npm install --legacy-peer-deps node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build --prod

--legacy-peer-deps参数能解决依赖冲突问题,亲测有效。

4.3 Nginx终极配置

这是经过压测优化的nginx配置模板:

server { listen 80; server_name your_domain.com; gzip on; gzip_min_length 1k; gzip_comp_level 6; gzip_types *; location / { root /usr/share/nginx/html/dist; try_files $uri $uri/ /index.html; expires 1y; add_header Cache-Control "public"; } location /api { proxy_pass http://localhost:8844; proxy_http_version 1.1; proxy_set_header Connection ""; } }

关键点在于:

  1. 开启gzip压缩减少传输量
  2. 配置长期缓存提升加载速度
  3. 分离API接口路由

5. 部署后检查清单

项目启动后,务必检查这些关键点:

  1. netstat -tulnp确认8844端口监听正常
  2. 前端控制台不能有404或CORS错误
  3. 数据库连接池监控(Druid自带)
  4. JVM内存使用率(建议Xmx设为物理内存的70%)

遇到页面能打开但接口报错时,先检查Nginx的proxy_pass地址,再查看后端日志:

tail -f /var/log/jetlinks/jetlinks.log

最后提醒:生产环境一定要配置HTTPS!用Let's Encrypt免费证书就行:

sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d your_domain.com

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询