LIMS 3.0 测试环境部署过程记录

LIMS 3.0 测试环境部署过程记录

一、确认部署目录及文件

进入项目部署目录:

bash 复制代码
cd /opt/lims3.0-test/lims-3.0-sdfrd/wuk-lims3.0

项目目录结构:

text 复制代码
wuk-lims3.0/
├── res
├── service
└── web

其中:

text 复制代码
前端目录:
/opt/lims3.0-test/lims-3.0-sdfrd/wuk-lims3.0/web

后端目录:
/opt/lims3.0-test/lims-3.0-sdfrd/wuk-lims3.0/service

后端程序包:
/opt/lims3.0-test/lims-3.0-sdfrd/wuk-lims3.0/service/wuk-lims3.0.jar

检查前端文件是否完整:

bash 复制代码
ls -lah /opt/lims3.0-test/lims-3.0-sdfrd/wuk-lims3.0/web

重点确认存在:

text 复制代码
index.html
assets/

二、确认 Nginx 安装位置及配置文件

当前服务器实际使用的 Nginx:

text 复制代码
Nginx 程序:
/data/nginx/sbin/nginx

主配置文件:
/data/nginx/conf/nginx.conf

子配置目录:
/data/nginx/conf/conf.d/

确认主配置中已加载子配置:

bash 复制代码
grep -n "conf.d" /data/nginx/conf/nginx.conf

创建站点配置目录:

bash 复制代码
mkdir -p /data/nginx/conf/conf.d

创建本项目 Nginx 配置文件:

bash 复制代码
vi /data/nginx/conf/conf.d/sdfrd.conf

也可以使用:

bash 复制代码
cat > /data/nginx/conf/conf.d/sdfrd.conf

粘贴配置后按 Ctrl+D 保存。


三、配置前端访问和后端代理

项目对外前端端口配置为:

text 复制代码
9010

核心配置内容如下:

nginx 复制代码
server {
    listen 9010;
    server_name _;

    root /opt/lims3.0-test/lims-3.0-sdfrd/wuk-lims3.0/web;
    index index.html;

    # Vue 前端路由
    location / {
        try_files $uri $uri/ /index.html;
    }

    # 保留 /api 前缀
    location /api/businessAction/ {
        proxy_pass http://127.0.0.1:9000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # 去掉 /api 前缀后转发
    location /api/ {
        proxy_pass http://127.0.0.1:9000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # LIMS 业务模块
    location ~ ^/(base|flow|function|customer|standard|attach|inspection|resource|test|original|cost|sample|file|client|scheduled|country|bi|saas|report|oa)/ {
        proxy_pass http://127.0.0.1:9000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

同时配置了:

  • WebSocket:/msgWebSocket
  • PageOffice 相关路径
  • /pageofficeApi/
  • /pageoffice/
  • /h5Sign/
  • /h5Wx/
  • /static/
  • /online/

四、备份并调整 Nginx 配置

修改前对配置文件进行备份:

bash 复制代码
cp /data/nginx/conf/conf.d/sdfrd.conf \
/data/nginx/conf/conf.d/sdfrd.conf.bak-before-port-$(date +%Y%m%d-%H%M%S)

最初配置中的后端地址为:

text 复制代码
127.0.0.1:9013

检查后端配置后确认实际端口为:

text 复制代码
9000

批量将 Nginx 配置里的 9013 改为 9000

bash 复制代码
sed -i 's/127\.0\.0\.1:9013/127.0.0.1:9000/g' \
/data/nginx/conf/conf.d/sdfrd.conf

检查修改结果:

bash 复制代码
grep -n "proxy_pass" /data/nginx/conf/conf.d/sdfrd.conf

五、检查并重载 Nginx

检查 Nginx 配置语法:

bash 复制代码
/data/nginx/sbin/nginx -t

配置检查成功后重载:

bash 复制代码
/data/nginx/sbin/nginx -s reload

检查 9010 端口是否监听:

bash 复制代码
ss -lntp | grep ':9010'

服务器本机测试前端:

bash 复制代码
curl -I http://127.0.0.1:9010/login

返回:

text 复制代码
HTTP/1.1 200 OK

说明:

  • Nginx 已正常运行
  • 前端文件目录配置正确
  • Vue 路由回退配置生效

六、确认后端服务端口

在后端配置中查找端口:

bash 复制代码
grep -Rni -A 5 -B 2 "server:" \
/opt/lims3.0-test/lims-3.0-sdfrd/wuk-lims3.0/service/config

确认配置:

yaml 复制代码
server:
  port: 9000
  servlet:
    context-path: /

因此 Nginx 后端代理统一指向:

text 复制代码
127.0.0.1:9000

七、检查后端启停脚本

进入后端目录:

bash 复制代码
cd /opt/lims3.0-test/lims-3.0-sdfrd/wuk-lims3.0/service

查看启动脚本:

bash 复制代码
sed -n '1,200p' start.sh

启动脚本核心内容:

bash 复制代码
#!/bin/bash

LOGFILE="server.log"

JAVA_OPTS="-Xms2048m -Xmx4096m \
-XX:MetaspaceSize=128m \
-XX:MaxMetaspaceSize=512m"

RUN_CMD="java -Dfile.encoding=utf-8 $JAVA_OPTS \
-jar /opt/lims3.0-test/lims-3.0-sdfrd/wuk-lims3.0/service/wuk-lims3.0.jar"

nohup $RUN_CMD > "$LOGFILE" 2>&1 &

echo "Started wuk-lims3.0 with PID $!"

八、修正启停脚本执行方式

最初使用:

bash 复制代码
sh stop.sh

出现错误:

text 复制代码
Syntax error: "(" unexpected

原因是脚本使用了 Bash 语法,sh 无法正确执行。

改为使用 Bash:

bash 复制代码
bash stop.sh

停止结果:

text 复制代码
开始查找端口号【9000】所占用进程
端口号【9000】相关进程已找到
进程已终止

重新启动后端:

bash 复制代码
bash start.sh

返回:

text 复制代码
Started wuk-lims3.0 with PID 2254294

需要注意:脚本显示 Started 只代表 Java 命令已提交,不代表 Spring Boot 一定启动完成。


九、检查后端日志

查找最新日志文件:

bash 复制代码
find . -maxdepth 3 -type f \( -name "*.log" -o -name "nohup.out" \) \
-printf '%T@ %TY-%Tm-%Td %TH:%TM:%TS %p\n' \
| sort -nr | head -10

发现主要日志包括:

text 复制代码
./server.log
./logs/console.log
./logs/error.log
./logs/warn.log
./logs/info.log
./log/lims3.0.console.log

查看启动日志:

bash 复制代码
tail -n 500 -f ./logs/console.log

或查看启动脚本输出:

bash 复制代码
tail -n 500 -f ./server.log

退出实时日志:

text 复制代码
Ctrl+C

日志中最终显示:

  • Tomcat 启动在 9000
  • 服务成功注册到 Nacos
  • Spring Boot 应用启动完成
  • 启动耗时约 27 秒

十、确认后端是否真正启动成功

使用一条命令同时检查 Java 进程、端口和 HTTP 响应:

bash 复制代码
pgrep -af 'wuk-lims3.0.jar'; \
ss -lntp | grep ':9000'; \
curl -sS -o /dev/null \
-w 'HTTP状态码:%{http_code}\n' \
--max-time 5 \
http://127.0.0.1:9000/

检查结果:

text 复制代码
2257652 java ... -jar /opt/lims3.0-test/.../wuk-lims3.0.jar

LISTEN *:9000 users:(("java",pid=2257652,...))

HTTP状态码:404

判断结果:

  • Java 进程存在
  • 9000 端口正常监听
  • HTTP 能够收到响应
  • 根路径 / 返回 404,是因为后端没有配置根路径接口,不代表启动失败

因此后端服务启动成功。


十一、验证 Nginx 到后端的代理链路

通过 Nginx 测试后端代理:

bash 复制代码
curl -i --max-time 5 http://127.0.0.1:9010/api/

返回:

text 复制代码
404

该结果正常,因为 /api/ 本身没有对应业务接口。

关键是未返回:

text 复制代码
502 Bad Gateway

说明链路已经打通:

text 复制代码
Nginx 9010
    ↓
127.0.0.1:9000
    ↓
Spring Boot 后端

十二、外部访问测试及端口区别

后端端口:

text 复制代码
9000

前端 Nginx 端口:

text 复制代码
9010

直接访问:

text 复制代码
http://123.249.98.245:9000/login

返回 404,原因是 9000 是后端端口,后端没有 /login 页面。

正确的前端访问地址应为:

text 复制代码
http://123.249.98.245:9010/login

如果公网无法访问 9010,则需要运维配置防火墙或端口映射:

text 复制代码
公网 123.249.98.245:9010
        ↓
内网 192.168.0.240:9010

服务器内部服务部署已经完成,公网访问还取决于安全组、防火墙和 NAT 映射。


最终部署结果

text 复制代码
前端文件部署:完成
Nginx 站点配置:完成
前端端口 9010:正常监听
前端本机访问:HTTP 200
后端程序启动:完成
后端端口 9000:正常监听
Nacos 注册:成功
Nginx 转发后端:正常
公网访问:需确认 9010 端口开放及映射
相关推荐
The Chosen One9851 小时前
【操作系统】操作系统引导、虚拟机、进程通信、信号
linux·运维·服务器·操作系统·虚拟机·信号
宵时待雨1 小时前
linux笔记归纳14:Socket编程TCP
linux·服务器·网络·笔记·tcp/ip
小张同学a.2 小时前
zabbix企业级监控平台3——服务监控与API实战
linux·运维·mysql·nginx·tomcat·zabbix
hwx15462 小时前
Linux内核时钟
linux
Brilliantwxx2 小时前
【Linux】自动化构建工具 make 与 Makefile
linux·运维·服务器·开发语言·自动化
灵晔君3 小时前
【Linux】进程(四)——进程虚拟地址空间
linux·c语言·开发语言
张毅2004-10-103 小时前
docker详解:安装docker,docker架构,docker镜像、容器、网络、存储,容器监控,容器日志,综合实验
linux·运维·docker·云原生·云计算
Yyyyyy~3 小时前
[Linux]常用指令1
linux
笑一下蒜了.3 小时前
Linux 存储多路径访问手册|multipath.conf 各配置段详解
android·linux·运维