Bladeren bron

服务器部署配置信息

lingmin_package@163.com 6 dagen geleden
bovenliggende
commit
f015865e14
3 gewijzigde bestanden met toevoegingen van 137 en 0 verwijderingen
  1. 67 0
      dev/minerU-dev/mineru-docker-compose.yaml
  2. 31 0
      dev/minerU-dev/nginx-docker-compose.yaml
  3. 39 0
      dev/minerU-dev/nginx.conf

+ 67 - 0
dev/minerU-dev/mineru-docker-compose.yaml

@@ -0,0 +1,67 @@
+services:
+  mineru-api:
+    image: mineru:latest
+    container_name: mineru-api
+    restart: always
+    profiles: ["api"]
+    ports:
+      - 8000:8000
+    environment:
+      #MINERU_MODEL_SOURCE: local
+       # 模型源:与 --source modelscope 保持一致
+       - MINERU_MODEL_SOURCE=modelscope
+       # 模型缓存路径(容器内)
+       - MODELSCOPE_CACHE=/root/.cache/modelscope
+       - MINERU_CACHE_DIR=/root/.cache/mineru
+       # Transformers/HF 缓存,避免路径冲突
+       - TRANSFORMERS_CACHE=/root/.cache/huggingface/transformers
+       - HF_HOME=/root/.cache/huggingface
+       # 日志与语言
+       - LOG_DIR=/app/logs
+       - LANG=zh_CN.UTF-8
+       - PYTHONUNBUFFERED=1
+       - DEVICE=cuda
+       # API Key 配置(根据实际版本选择)
+       - MINERU_API_KEY=sk_dev_aC_2gg8BS5ImUScrpaHIKS5x6gdLO9Js_ba854894
+
+    entrypoint: mineru-api
+    command:
+      --host 0.0.0.0
+      --port 8000
+      # --allow-public-http-client  # Disabled by default; when binding to 0.0.0.0 or ::, this re-enables *-http-client backends and server_url. Enable only if you accept the SSRF risk.
+      # parameters for vllm-engine
+      # --gpu-memory-utilization 0.5  # If encountering VRAM shortage, reduce the KV cache size by this parameter; if VRAM issues persist, try lowering it further to `0.4` or below.
+    volumes:
+      # 1. 模型缓存持久化 (核心:避免重复下载)
+      - /home/ubuntu/.cache/modelscope:/root/.cache/modelscope:rw
+      # 2. MinerU 缓存持久化
+      - /home/ubuntu/.cache/mineru:/root/.cache/mineru:rw
+      - /home/ubuntu/.cache/huggingface:/root/.cache/huggingface:rw  # 新增:避免 transformers 缓存冲突
+      # 3. 日志目录映射
+      - //home/ubuntu/lq_workspace/minerU/logs:/app/logs:rw
+      # 4. 输入文件目录 (可选,如果 API 支持文件上传处理)
+      - /home/ubuntu/lq_workspace/minerU/input:/app/input:ro
+      # 5. 输出结果目录 (可选)
+      - /home/ubuntu/lq_workspace/minerU/output:/app/output:rw
+      # 6. 配置文件目录 (可选,如有自定义配置)
+      - /home/ubuntu/lq_workspace/minerU/config:/app/config:ro
+    
+    ulimits:
+      memlock: -1
+      stack: 67108864
+    ipc: host
+    healthcheck:
+      test: ["CMD-SHELL", "curl -f http://localhost:8000/health || exit 1"]
+    networks:
+      - lq_network
+    deploy:
+      resources:
+        reservations:
+          devices:
+            - driver: nvidia
+              device_ids: ["0"]  # Modify for multiple GPUs: ["0", "1"]
+              capabilities: [gpu]
+
+networks:
+  lq_network:
+    external: true

+ 31 - 0
dev/minerU-dev/nginx-docker-compose.yaml

@@ -0,0 +1,31 @@
+version: '3.8'
+
+services:
+  nginx:
+    image: nginx:alpine  # 使用轻量级 alpine 版本
+    container_name: nginx-web
+    restart: always
+    ports:
+      - "80:80"
+      - "443:443"
+      - "23428:9000"
+    volumes:
+      # 挂载配置文件
+      - /home/ubuntu/lq_workspace/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro
+      - /home/ubuntu/lq_workspace/nginx/conf.d:/etc/nginx/conf.d:ro
+      - /home/ubuntu/lq_workspace/nginx/conf/app_conf/:/etc/nginx/app_conf:ro
+      # 挂载网站文件
+      - /home/ubuntu/lq_workspace/nginx/html:/usr/share/nginx/html:ro
+      - /home/ubuntu/lq_workspace/nginx/html_app:/usr/share/nginx/html_app:ro
+      # 挂载 SSL 证书
+      - /home/ubuntu/lq_workspace/nginx/ssl:/etc/nginx/ssl:ro
+      # 挂载日志
+      - /home/ubuntu/lq_workspace/nginx/logs:/var/log/nginx
+    environment:
+      - TZ=Asia/Shanghai
+    networks:
+      - lq_network
+
+networks:
+  lq_network:
+    external: true

+ 39 - 0
dev/minerU-dev/nginx.conf

@@ -0,0 +1,39 @@
+events {
+    worker_connections 1024;
+}
+
+http {
+    server {
+        listen 9000;
+        server_name _;
+
+        # 定义你的 API Key
+        # 客户端请求时需携带 Header: Authorization: Bearer YOUR_SECRET_KEY
+        # 或者 Query Param: ?api_key=YOUR_SECRET_KEY
+
+	client_max_body_size 300M;   # 根据你的实际最大文件调整,比如 200M
+
+        location /mineru/ {
+            # --- 方式 A: 基于 Header 鉴权 (推荐) ---
+            if ($http_authorization != "Bearer sk_dev_aC_2gg8BS5ImUScrpaHIKS5x6gdLO9Js_ba854894") {
+                return 401 '{"error": "Unauthorized"}';
+            }
+
+            # --- 方式 B: 基于 Query Param 鉴权 (如果不方便改 Header) ---
+            # if ($arg_api_key != "YOUR_SECRET_KEY") {
+            #     return 401 '{"error": "Unauthorized"}';
+            # }
+            ## 关键:proxy_pass 末尾的斜杠会替换掉 location 中匹配的 /mineru/
+            proxy_pass http://mineru-api:8000/;
+            proxy_set_header Host $host;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+
+            # 针对大文件上传解析的优化
+	    #client_max_body_size 50M;
+            proxy_read_timeout 300s;
+            proxy_send_timeout 300s;
+        }
+    }
+}
+