Bỏ qua để đến nội dung

Cấu hình NextPDF Connect

NextPDF Connect có hai bề mặt cấu hình. Máy chủ Model Context Protocol (MCP) đọc một tệp YAML và các biến NEXTPDF_MCP_*. Máy chủ REST và gRPC đọc các biến môi trường NEXTPDF_*. Cấu hình được cố định sau khi máy chủ khởi động.

Terminal window
composer require nextpdf/server

Máy chủ MCP phân giải cấu hình theo một thứ tự ưu tiên cố định. Nguồn có ưu tiên cao nhất sẽ được áp dụng:

  1. Biến môi trường (NEXTPDF_MCP_*).
  2. Phần nextpdf_mcp của tệp cấu hình YAML.
  3. Giá trị mặc định tích hợp sẵn.

Truyền tệp YAML bằng --config=PATH. Nếu bỏ qua tham số này, máy chủ chỉ dùng các giá trị mặc định và biến môi trường. McpConfig được tạo ra là một value object readonly. Không thiết lập nào có thể được thay đổi sau khi khởi động.

Máy chủ REST và gRPC đọc HttpConfig từ môi trường khi khởi động. Chúng hỗ trợ NEXTPDF_BIND, NEXTPDF_WORKER_COUNT, NEXTPDF_SESSIONS_ENABLEDNEXTPDF_CORS_ENABLED dưới dạng các ghi đè từ môi trường. Các giới hạn còn lại sử dụng giá trị mặc định an toàn.

Tệp YAML, phần nextpdf_mcp:

nextpdf_mcp:
enabled_tools: [] # empty/absent = all available tools allowed
temp_directory: /tmp/nextpdf-mcp
max_documents: 50
document_ttl: 1800
max_file_size_bytes: 104857600
allow_file_output: true
compress: true
risk_level_overrides:
fill_form: 3 # raise fill_form to ApprovalRequired (see below)

Ghi đè qua môi trường cho máy chủ MCP:

BiếnKhóa cấu hìnhMặc định
NEXTPDF_MCP_ENABLED_TOOLSenabled_toolscho phép mọi công cụ
NEXTPDF_MCP_TEMP_DIRtemp_directorythư mục tạm của hệ thống + /nextpdf-mcp
NEXTPDF_MCP_MAX_FILE_SIZEmax_file_size_bytes104857600 (100 MB)
NEXTPDF_MCP_MAX_DOCUMENTSmax_documents50
NEXTPDF_MCP_DOCUMENT_TTLdocument_ttl1800 giây
NEXTPDF_MCP_TOOL_PARSE_PDF_ENABLED(kiểm soát parse_pdf)không đặt (đã tắt)
NEXTPDF_AST_TOOLS_ENABLED(kiểm soát các công cụ AST)đã bật
NEXTPDF_MUTATION_TOOLS_ENABLED(kiểm soát các công cụ mutation AST)không đặt (đã tắt)
BiếnMặc địnhTác dụng
NEXTPDF_BIND0.0.0.0:8080Địa chỉ lắng nghe của REST
NEXTPDF_WORKER_COUNT4Số lượng worker PHP của RoadRunner
NEXTPDF_SESSIONS_ENABLEDfalseBật các endpoint phiên lưu trạng thái
NEXTPDF_CORS_ENABLEDfalseBật các header CORS trong phản hồi
NEXTPDF_API_KEYSkhông đặtĐịnh nghĩa khóa API nội tuyến
NEXTPDF_API_KEYS_FILEkhông đặtĐường dẫn đến tệp khóa API
NEXTPDF_JOB_STORE_PATHthư mục tạm của hệ thốngĐường dẫn đến job store SQLite
NEXTPDF_REDIS_HOSTkhông đặtBật các store dựa trên Redis khi biến này được đặt

Máy chủ REST sử dụng Redis khi NEXTPDF_REDIS_HOST được đặt và ext-redis được nạp:

BiếnMặc định
NEXTPDF_REDIS_PORT6379
NEXTPDF_REDIS_PASSWORDrỗng
NEXTPDF_REDIS_DATABASE0
NEXTPDF_REDIS_PREFIXnextpdf:
NEXTPDF_REDIS_CONNECT_TIMEOUT2.0 giây
NEXTPDF_REDIS_READ_TIMEOUT2.0 giây

Chạy máy chủ MCP với một tệp cấu hình tường minh:

Terminal window
./vendor/bin/nextpdf-mcp --config=/etc/nextpdf/nextpdf-mcp.yaml

Thu hẹp danh mục MCP thành một danh sách cho phép tường minh, đồng thời nâng mức rủi ro của một công cụ:

/etc/nextpdf/nextpdf-mcp.yaml
nextpdf_mcp:
enabled_tools:
- create_pdf
- add_text
- output_pdf
- diagnostic.doctor
temp_directory: /var/lib/nextpdf/tmp
max_file_size_bytes: 26214400
risk_level_overrides:
add_text: 2 # upgrade add_text from caution to review

Với enabled_tools không rỗng, chính sách bảo mật chỉ chấp nhận những tên công cụ được liệt kê. Registry loại bỏ mọi công cụ khác một cách âm thầm. Danh sách rỗng hoặc vắng mặt sẽ chấp nhận mọi công cụ khả dụng.

Trường hợp đặc biệt và điểm cần lưu ý

Phần tiêu đề “Trường hợp đặc biệt và điểm cần lưu ý”
  • Không thể hạ cấp hai công cụ quan trọng. Theo thiết kế, output_pdfsign_pdf luôn chịu kiểm soát phê duyệt: một mục risk_level_overrides hạ một trong hai công cụ xuống dưới ApprovalRequired sẽ ném ra InvalidArgumentException khi nạp, và máy chủ từ chối khởi động. Bạn có thể nâng hoặc hạ mức rủi ro của mọi công cụ khác, vì vậy hãy xem xét từng lần hạ cấp dựa trên mô hình mối đe dọa của riêng bạn. Xem /connect/hitl-risk-tiers/.

  • enabled_tools lọc, nó không thêm. Việc liệt kê tên một công cụ Pro khi nextpdf/premium vắng mặt cũng không làm công cụ đó xuất hiện. Danh sách cho phép là giao của danh sách đó với những công cụ mà registry thực sự phát hiện.

  • Biến môi trường ưu tiên hơn YAML đối với máy chủ MCP. Một biến NEXTPDF_MCP_* ghi đè khóa tương ứng trong tệp YAML. Máy chủ REST và gRPC hoàn toàn không đọc tệp YAML của MCP.

  • Cần bật tùy chọn cho parse_pdf. Máy chủ chỉ đăng ký công cụ parse_pdf khi NEXTPDF_MCP_TOOL_PARSE_PDF_ENABLEDtrue hoặc 1. Theo mặc định, nó vắng mặt, ngay cả trong danh mục core.

Cấu hình được phân tích cú pháp một lần khi khởi động. Các thiết lập max_documentsdocument_ttl giới hạn kho tài liệu trong bộ nhớ. Giảm các giá trị này sẽ giảm bộ nhớ đỉnh, nhưng rút ngắn vòng đời của tài liệu. Số lượng worker và các giới hạn payload theo từng bậc là các tham số điều chỉnh khi triển khai, được trình bày trong /connect/deployment/.

  • Hãy coi enabled_tools như một biện pháp kiểm soát từ-chối-mặc-định cho các triển khai theo nguyên tắc đặc quyền tối thiểu: chỉ liệt kê những công cụ mà từng tích hợp cần.
  • Không bao giờ lưu khóa API trong tệp YAML. Hãy dùng NEXTPDF_API_KEYS_FILE với một tệp được gắn dưới dạng secret của Docker hoặc Kubernetes. Máy chủ ưu tiên một file store hỗ trợ nạp lại nóng, nhờ đó các khóa được luân chuyển mà không cần khởi động lại. Xem /connect/security-and-operations/.
  • Thư mục temp_directory là thư mục gốc bắt buộc cho đầu ra tệp. Máy chủ chuẩn hóa các đường dẫn đầu ra và từ chối bất kỳ đường dẫn nào phân giải ra ngoài thư mục đó.

Trang này mô tả cơ chế cấu hình. Các trích dẫn về tuân thủ cho xác thực và bảo mật truyền tải nằm trong /connect/security-and-operations/.

Các giới hạn payload và timeout theo từng bậc (corePayloadLimit, proPayloadLimit, enterprisePayloadLimit và các timeout tương ứng) áp dụng cho lớp truyền tải REST tương ứng với bậc của khóa API đã xác thực. Chúng chỉ có hiệu lực khi các công cụ Pro hoặc Enterprise được cài đặt và khóa có quyền dùng chúng.

  • /connect/install/ — cài đặt và gói tùy chọn
  • /connect/boot-and-discovery/ — cách cấu hình đưa vào trình tự khởi động
  • /connect/hitl-risk-tiers/ — mô hình rủi ro và ghi đè chỉ-nâng-cấp
  • /connect/security-and-operations/ — cấu hình khóa API và bảo mật truyền tải
  • /connect/deployment/ — số lượng worker, Redis và các giới hạn theo bậc trong môi trường sản xuất