diwang部署流程

0

1、apache-maven-3.9.9.zip

上传maven文件到/opt下,解压

2、安装java环境管理器

安装21

3、在/www/wwwroot下下载项目

下载完成后执行

chown -R www:www /www/wwwroot/diwang
chmod -R u+rwX /www/wwwroot/diwang

4、在diwang目录下执行命令:

cd /www/wwwroot/diwang

LC_ALL=C.UTF-8 LANG=C.UTF-8 \
/www/server/java/jdk-21.0.2/bin/java \
  -Xmx1024m \
  -Dmaven.home=/opt/apache-maven-3.9.9 \
  -Dclassworlds.conf=/opt/apache-maven-3.9.9/bin/m2.conf \
  -Dmaven.multiModuleProjectDirectory=/www/wwwroot/diwang/backend \
  -cp "/opt/apache-maven-3.9.9/boot/*" \
  org.codehaus.plexus.classworlds.launcher.Launcher \
  -f backend/pom.xml clean package -DskipTests

cp backend/target/backend-1.0.0.jar /www/wwwroot/diwang/diwang.jar


/www/server/java/jdk-21.0.2/bin/java -Xmx1024M -Xms256M -jar /www/wwwroot/diwang/diwang.jar --spring.profiles.active=pro

安装node

cd /www/wwwroot/diwang/frontend

PATH="/www/server/nodejs/v22.23.3/bin:$PATH" /www/server/nodejs/v22.23.3/bin/npm -v

PATH="/www/server/nodejs/v22.23.3/bin:$PATH" /www/server/nodejs/v22.23.3/bin/npm ci --include=dev

PATH="/www/server/nodejs/v22.23.3/bin:$PATH" /www/server/nodejs/v22.23.3/bin/npm run build

修改nginx

server {
    listen 18080;
    server_name 127.0.0.1 101.42.223.119;

    root /www/wwwroot/diwang/frontend/dist;
    index index.html;

    # 正确识别前端 JS、CSS、图片等文件类型
    include /www/server/nginx/conf/mime.types;
    default_type application/octet-stream;

    # 保留宝塔站点扩展
    include /www/server/panel/vhost/nginx/extension/127.0.0.1/*.conf;

    #CERT-APPLY-CHECK--START
    # 保留宝塔证书验证配置
    include /www/server/panel/vhost/nginx/well-known/127.0.0.1.conf;
    #CERT-APPLY-CHECK--END

    #SSL-START
    #error_page 404/404.html;
    #SSL-END

    # 反向代理公共设置
    proxy_http_version 1.1;
    proxy_set_header Host $http_host;
    proxy_set_header X-Forwarded-Host $http_host;
    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 Connection "";

    proxy_connect_timeout 10s;
    proxy_read_timeout 60s;
    proxy_send_timeout 60s;
    proxy_cache off;

    # 后端接口:保留完整 /api 路径
    location ^~ /api/ {
        proxy_pass http://127.0.0.1:28888;
    }

    # 禁止访问隐藏文件、隐藏目录,保留证书验证目录
    location ~ /\.(?!well-known(?:/|$)) {
        return 404;
    }

    # 禁止访问配置、日志和备份文件
    location ~* \.(sql|bak|log|conf|ini|ya?ml|properties|sh|env)$ {
        return 404;
    }

    # 证书验证文件
    location ~ ^/\.well-known/ {
        try_files $uri =404;
    }

    # 游戏素材由后端提供,兼容旧 PNG 地址对应 WebP/JPG
    location ~ ^/assets/(inner-city|general|icons|ui|placeholders|world-map)/ {
        proxy_pass http://127.0.0.1:28888;
    }

    # 前端构建资源及 assets/game 直接从 dist 读取
    # 此处不要添加 ^~,否则会拦截上面的游戏素材规则
    location /assets/ {
        try_files $uri =404;
    }

    # 入口页面及时检查更新
    location = /index.html {
        add_header Cache-Control "no-cache";
    }

    # 支持 Vue Router 页面直达及刷新
    location / {
        try_files $uri $uri/ /index.html;
    }

    # 站点访问日志和错误日志
    access_log /www/wwwlogs/127.0.0.1.log;
    error_log /www/wwwlogs/127.0.0.1.error.log;
}