Zum Inhalt springen
getnextpdf.com

Produktionsbetrieb

Diese Seite ist die Checkliste, um NextPDF in Produktion zu bringen und dort zu halten. Sie kuratiert das Handbuch: Jeder Punkt verweist auf die Seite, die in die Tiefe geht — Sie prüfen hier und lesen dort. Arbeiten Sie die Checkliste vor dem Deployment vor dem ersten Release durch. Sehen Sie sich Upgrade-Rhythmus und Einstiegspunkte für die Störungstriage im Rahmen des Day-Two-Betriebs erneut an.

  • Bestätigen Sie die Laufzeitumgebung: NextPDF erfordert PHP >=8.4 <9.0. Composer verweigert alles außerhalb dieses Bereichs. Siehe Installation.
  • Überprüfen Sie die sechs erforderlichen Erweiterungen mit php -m: ext-mbstring, ext-zlib, ext-intl, ext-gd, ext-curl und ext-openssl. Die Installationsseite erklärt, was jede einzelne davon leistet.
  • Führen Sie vendor/bin/nextpdf doctor für eine einmalige Umgebungsprüfung aus (PHP-Version, Erweiterungen und Schriftverfügbarkeit in einem Bericht).
  • Entscheiden Sie sich für Ihren Rendering-Pfad, bevor Sie die Hardware dimensionieren. Die In-Process-Pipeline (writeHtml()) benötigt keinen zusätzlichen Dienst. Artisan, Gotenberg und Cloudflare fügen jeweils einen Browser- oder Netzwerkdienst hinzu, der betrieben werden muss. Nutzen Sie Wählen Sie Ihren Weg zur Entscheidung.
  • Wenn Sie sich für eine Renderer-Bridge entschieden haben, lesen Sie deren Seite zu Sicherheit und Betrieb vor dem Go-live. Siehe Die Renderer-Oberfläche härten.
  • Bündeln Sie die Schriften, die Sie rendern, zur Build-Zeit — und nur diese. Siehe Schriften in Produktion bereitstellen.

Dimensionieren Sie für das größte Dokument, das Sie erzeugen, nicht für den Durchschnitt. getPdfData() erstellt das vollständige Dokument im Portable Document Format (PDF) im Arbeitsspeicher und gibt es als eine einzige Zeichenkette zurück.

  • Legen Sie den Speicher für Worker oder Funktionen gemäß der Anleitung zur Serverless-Dimensionierung fest: Ein Dokument mit wenigen Seiten kommt bei 512–1024 MB gut zurecht; bildlastige oder seitenreiche Dokumente benötigen mehr.
  • Setzen Sie Timeouts oberhalb der Erstellungszeit im ungünstigsten Fall, mit Reserve. Verlagern Sie überdimensionierte Jobs in eine asynchrone Queue, die in Objektspeicher schreibt — der gleiche Abschnitt zur Dimensionierung zeigt das Muster.
  • Aktivieren Sie für langlebige Worker opcache mit deaktivierter Zeitstempelvalidierung. Der opcache-Abschnitt des Docker-Rezepts enthält die ini-Werte für die Produktion.
  • Wenn Speicher oder Durchsatz nach dem Start abdriftet, beginnen Sie mit der Entscheidungstabelle Symptom-zu-Hebel.

Ein Document ist zum einmaligen Gebrauch bestimmt. Erstellen Sie es, schreiben Sie es einmal und lassen Sie es den Gültigkeitsbereich verlassen; erzeugen Sie pro Request oder pro Queue-Job eine frische Instanz. Nutzen Sie ausschließlich die an die Prozesslebensdauer gebundenen Registries — FontRegistry und ImageRegistry — gemeinsam, indem Sie sie einmalig beim Worker-Start erzeugen. Das entspricht dem Pro-Request-, Pro-Job-Modell von PHP-FPM, Queue-Workern und langlaufenden Anwendungsservern.

Behandeln Sie HTML als nicht vertrauenswürdig, insbesondere alles, was von Nutzern beeinflusst wird. Wählen Sie Ihren Weg benennt die Grenze: Standardmäßig führt die integrierte Pipeline keine Skripte aus und ruft keine entfernten Ressourcen ab, während jede Bridge über einen Browser oder einen Netzwerkdienst rendert. Bevor Sie eine Bridge dem Produktionsverkehr aussetzen, arbeiten Sie ihre Seite zu Sicherheit und Betrieb durch:

NextPDF veröffentlicht keine Zielwerte für Service-Level-Objectives (SLO); leiten Sie Ihre eigenen aus den unten gemessenen Metriken zu Render-Dauer und Speicher ab.

Instrumentieren Sie den Render-Pfad vor der ersten Störung, nicht danach.

  • Lesen Sie die Richtlinie zum Versions-Support einmal und richten Sie Releases dann danach aus. Sie definiert den Vertrag der semantischen Versionierung, die Stabilitäts-Labels, den Deprecation-Lebenszyklus und das Lebenszyklus-Vokabular (active, lts, maintenance, frozen, eol), das dieses Handbuch verwendet.
  • Committen Sie composer.lock, damit jeder ausgelieferte Worker dieselbe Engine-Version auflöst — die Installationsseite beschreibt diese Disziplin.
  • Prüfen Sie das Changelog vor jeder Versionsanhebung.

Bei einer Störung einer Renderer-Bridge (ein Chrome-Absturz, ein Gotenberg-Ausfall, ein Fehler beim Edge-Rendering) beginnen Sie mit dem Abschnitt zu den Fehlermodi dieser Bridge unter Die Renderer-Oberfläche härten.