Ευρετήριο ημερολογίουDockup / σημείωση πεδίου
Note / custom-domain-automatic-tls

Προσαρμοσμένο domain και automatic TLS στο Dockup

Προσαρμοσμένο domain και automatic TLS στο Dockup: προσθέστε DNS, επαληθεύστε την ιδιοκτησία, εκδώστε HTTPS, εκθέστε επιπλέον ports, επικυρώστε με ασφάλεια τη μετάβαση και αντιμετωπίστε προβλήματα.

Μια ρύθμιση custom domain και automatic TLS αποτελείται από τρία ξεχωριστά επίπεδα: η υπηρεσία Dockup πρέπει να λειτουργεί σωστά, το DNS πρέπει να κατευθύνει το hostname στην πλατφόρμα και το hostname πρέπει να περάσει την επαλήθευση πριν εκδοθεί certificate. Όταν αντιμετωπίζετε αυτά τα επίπεδα ξεχωριστά, η μετάβαση γίνεται προβλέψιμη και τα λάθη στο DNS δεν μοιάζουν με προβλήματα της εφαρμογής.

Το Dockup παρέχει επίσης σε κάθε service μια διεύθυνση *.dockup.tech. Κρατήστε αυτήν τη διεύθυνση διαθέσιμη κατά τη διάδοση των DNS αλλαγών, ώστε να μπορείτε να ελέγχετε την εφαρμογή ανεξάρτητα από το custom hostname.

Τι πρέπει να είναι έτοιμο πριν προσθέσετε ένα Dockup custom domain;

Ξεκινήστε με ένα service που εκτελείται ήδη και περνάει το readiness gate:

dockup status production/web --json
dockup health production/web --json

Ανοίξτε ή ελέγξτε το υπάρχον URL *.dockup.tech. Αν η εφαρμογή αποτυγχάνει εκεί, η προσθήκη domain δεν θα διορθώσει το πρόβλημα. Ελέγξτε πρώτα τα runtime logs.

Συγκεντρώστε τις παρακάτω πληροφορίες:

ΣτοιχείοΠαράδειγμαΓιατί έχει σημασία
Ακριβής στόχοςproduction/webΑποτρέπει τη σύνδεση του domain με λάθος service
Hostnameapp.example.comΤο DNS όνομα που θα επισκέπτονται οι χρήστες
Πρόσβαση στο DNSRegistrar ή πάροχος DNSΑπαιτείται για τη δημιουργία της εγγραφής
Τρέχον TTL300 δευτερόλεπταΕλέγχει την ταχύτητα διάδοσης και rollback
Canonical URL εφαρμογήςhttps://app.example.comΜπορεί να επηρεάσει redirects και cookies
Health route/healthΕπιβεβαιώνει το service πριν από τη μετάβαση

Μειώστε εκ των προτέρων το υπάρχον DNS TTL όταν αντικαθιστάτε έναν ενεργό πάροχο. Μην διαγράψετε την παλιά εγγραφή μέχρι να γνωρίζετε τον στόχο Dockup, τη ρύθμιση της εφαρμογής και το σχέδιο rollback.

Ελέγξτε τη συμπεριφορά της εφαρμογής που εξαρτάται από το host. Τα authentication callbacks, οι λίστες επιτρεπόμενων CORS, τα cookie domains, τα OAuth redirect URLs, οι προορισμοί των webhooks και τα απόλυτα links που δημιουργούνται από την εφαρμογή μπορεί να χρειάζονται το νέο HTTPS hostname.

Πώς προσθέτετε και επαληθεύετε το domain;

Εμφανίστε πρώτα τα τρέχοντα domains:

dockup domain list production/web --json

Προσθέστε το hostname:

dockup domain add app.example.com production/web --json

Η απόκριση παρέχει τον DNS στόχο που πρέπει να ρυθμίσετε. Δημιουργήστε την υποδεικνυόμενη εγγραφή CNAME στον πάροχο DNS. Μην επινοήσετε μια διεύθυνση IP και μην αντιγράψετε μια τιμή από άλλο service· χρησιμοποιήστε τον στόχο που επιστρέφεται για αυτό το domain.

Αφού ολοκληρωθεί η διάδοση του DNS, επαληθεύστε το domain με το domain ID που επιστράφηκε:

dockup domain verify <domainId> production/web --json

Η επαλήθευση αποδεικνύει ότι η δημόσια εγγραφή DNS επιλύεται όπως απαιτείται. Μια αποτυχία συνήθως οφείλεται σε ένα από τα εξής:

  1. Το όνομα της εγγραφής είναι λάθος.
  2. Ο στόχος CNAME είναι λάθος.
  3. Υπάρχει ακόμη μια παλιά εγγραφή A, AAAA ή CNAME που δημιουργεί σύγκρουση.
  4. Οι caches των resolvers δεν έχουν λάβει ακόμη τη νέα τιμή.

Ελέγξτε το authoritative DNS αντί να διαγράφετε και να δημιουργείτε ξανά επανειλημμένα το domain. Η διάδοση είναι μια κατανεμημένη διαδικασία caching και όχι διαδικασία build του Dockup.

Πώς εκδίδεται και διατηρείται το HTTPS certificate;

Μόλις ολοκληρωθεί επιτυχώς η επαλήθευση, ζητήστε το certificate:

dockup domain ssl <domainId> production/web --json

Το Dockup αναλαμβάνει την έκδοση certificate για το επαληθευμένο hostname και εξυπηρετεί το custom domain μέσω HTTPS. Η πλατφόρμα διαχειρίζεται τον κύκλο ζωής του TLS, επομένως το application container δεν χρειάζεται να αποθηκεύει αρχεία certificate ή να εκτελεί διαδικασία ανανέωσης certificate.

Επικυρώστε το αποτέλεσμα εκτός πλατφόρμας:

curl -I https://app.example.com

Επιβεβαιώστε ότι:

  • Το certificate αντιστοιχεί στο hostname.
  • Η απόκριση παρέχεται μέσω HTTPS.
  • Δεν υπάρχουν loops στα redirects.
  • Η εφαρμογή επιστρέφει το αναμενόμενο status.
  • Τα authentication και callback flows χρησιμοποιούν το νέο origin.
  • Τα static assets φορτώνουν χωρίς σφάλματα mixed content.

Η έκδοση certificate μπορεί να αποτύχει ακόμη και όταν η ίδια η εφαρμογή λειτουργεί σωστά. Διατηρήστε ξεχωριστά τα diagnostics του DNS και του service. Χρησιμοποιήστε το domain verify για την ιδιοκτησία DNS και τα service logs για τη συμπεριφορά της εφαρμογής.

Το άρθρο deployments χωρίς downtime εξηγεί το ανεξάρτητο release readiness gate.

Πώς κάνετε μετάβαση της κίνησης χωρίς outage;

Μια ασφαλής μετάβαση διατηρεί την παλιά διαδρομή διαθέσιμη μέχρι να επιβεβαιωθεί το νέο hostname.

  1. Κάντε deploy και επαληθεύστε το Dockup service στο platform URL του.
  2. Προσθέστε το custom domain στο Dockup.
  3. Δημιουργήστε την εγγραφή DNS.
  4. Επαληθεύστε το DNS.
  5. Εκδώστε TLS.
  6. Ελέγξτε απευθείας το HTTPS.
  7. Ενημερώστε τα callbacks, τα canonical URLs και το monitoring.
  8. Στείλτε μικρό μέρος της operational κίνησης, εφόσον το επιτρέπει η ρύθμιση DNS.
  9. Παρακολουθήστε τα logs και το uptime.
  10. Αποσύρετε τον παλιό πάροχο μόνο αφού σταθεροποιηθεί η νέα διαδρομή.

Οι έλεγχοι uptime του Dockup εκτελούνται κάθε λεπτό και αναφέρουν στατιστικά χρόνου απόκρισης, συμπεριλαμβανομένου του p95:

dockup uptime production/web --hours 24 --json

Διατηρήστε ανεξάρτητο εξωτερικό monitoring για κρίσιμα domains. Ένα platform probe επιβεβαιώνει τη δημόσια προσβασιμότητα, ενώ ένα external monitor επαληθεύει τη διαδρομή του χρήστη από άλλο σύστημα.

Αν το custom domain αντικαθιστά ένα τρέχον production host, διατηρήστε ένα rollback record: την προηγούμενη DNS τιμή, το προηγούμενο TTL, την κατάσταση του παλιού παρόχου και τη συνθήκη που θα ενεργοποιούσε την επαναφορά.

Πώς λειτουργούν τα extra port domains;

Ένα service μπορεί να εκθέτει ένα δεύτερο HTTP port για admin UI, metrics endpoint ή άλλη web process. Το Dockup μπορεί να δημιουργήσει ένα επιπλέον platform domain χωρίς custom DNS:

dockup port list production/web --json
dockup port add 8080 production/web --name admin --json

Το domain που επιστρέφεται κατευθύνει την κίνηση στο επιλεγμένο container port. Αυτό είναι ξεχωριστό από το κύριο custom domain.

Μην εκθέτετε ένα port απλώς επειδή κάποια process ακούει σε αυτό. Εξετάστε αν το endpoint διαθέτει authentication, αν περιέχει production data και αν πρέπει να είναι δημόσιο. Ένα admin interface μόνο για εσωτερική χρήση δεν πρέπει να γίνει προσβάσιμο από το Internet για λόγους ευκολίας.

Αφαιρέστε ένα obsolete port domain μέσω του υποστηριζόμενου domain interface μόνο αφού επιβεβαιώσετε ότι κανένα monitor, callback ή workflow operator δεν το χρησιμοποιεί πλέον. Οι αλλαγές σε port domains είναι mutations και εμφανίζονται στο audit log.

Πώς αντιμετωπίζετε προβλήματα DNS, TLS και εφαρμογής;

Χρησιμοποιήστε διάγνωση ανά επίπεδο:

ΣύμπτωμαΠρώτος έλεγχοςΕντολή Dockup
Το domain δεν γίνεται resolveΕγγραφή DNS και διάδοσηdomain verify
Δεν εκδίδεται certificateΚατάσταση επαλήθευσης domaindomain list, domain ssl
Το HTTPS λειτουργεί, αλλά η εφαρμογή εμφανίζει σφάλματαRuntime logslogs --json
Redirect loopΡυθμίσεις proxy/host της εφαρμογήςenv list, runtime logs
Το platform URL λειτουργεί, αλλά το custom host αποτυγχάνειΕπίπεδο DNS/TLSΕντολές domain
Αποτυγχάνουν και τα δύο URLsDeployment και runtimestatus, build/runtime logs
Αποτυγχάνει το secondary portΑντιστοίχιση port-domain και processport list, runtime logs

Ελέγξτε την έξοδο του service χωρίς να τη συγχέετε με συμπεράσματα για το DNS:

dockup logs production/web --json
dockup status production/web --json

Αν μια πρόσφατη αλλαγή environment πρόσθεσε το canonical URL, θυμηθείτε ότι απαιτείται redeploy:

dockup env set APP_URL=https://app.example.com \
  -s production/web \
  --json

dockup deploy production/web --wait --json

Ο οδηγός για environment variables και secrets καλύπτει αυτόν τον κύκλο ζωής.

Αφαίρεση domain και rollback

Η αφαίρεση της συσχέτισης με το Dockup είναι destructive για τη διαδρομή, επομένως πρώτα μετακινήστε ή αφαιρέστε τη δημόσια εγγραφή DNS και επιβεβαιώστε την προβλεπόμενη αντικατάσταση. Στη συνέχεια, αφαιρέστε τη συσχέτιση μέσω του υποστηριζόμενου domain interface, χρησιμοποιώντας το ακριβές domain ID.

Μην αφαιρείτε το domain κατά τη διάρκεια ενός προσωρινού incident certificate ή διάδοσης, εκτός αν το απαιτεί το recovery plan. Η διατήρηση της ρύθμισης επιτρέπει στην επαλήθευση να ολοκληρωθεί όταν ενημερωθούν οι caches.

Ελέγξτε τα mutations με:

dockup audit --search domains --json

Το audit trail θα πρέπει να δείχνει ποιος πρόσθεσε, επαλήθευσε, ασφάλισε ή αφαίρεσε το hostname.

Checklist παράδοσης σε production

Μια ολοκληρωμένη παράδοση custom domain και automatic TLS περιλαμβάνει το service target, το hostname, το domain ID, τον τύπο και τον στόχο της εγγραφής DNS, το αποτέλεσμα της επαλήθευσης, το αποτέλεσμα του certificate, τις αλλαγές στα application callbacks, το monitoring URL και την DNS τιμή για rollback.

Μην αποθηκεύετε private key certificate στο repository ή στο container. Το managed TLS boundary του Dockup υπάρχει ακριβώς ώστε η ομάδα εφαρμογής να μπορεί να διαχειρίζεται το hostname χωρίς να διανέμει υλικό certificate.

Για κάθε τρέχον flag, χρησιμοποιήστε το Dockup CLI reference. Για το αρχικό deployment πριν από την εργασία στο domain, ακολουθήστε το Από Git repository σε production.

Σχεδιάστε τις επιλογές apex και subdomain

Ένα subdomain, όπως το app.example.com, είναι συνήθως το απλούστερο hostname εφαρμογής, επειδή οι πάροχοι DNS μπορούν να το αναπαραστήσουν με CNAME. Ένα apex, όπως το example.com, μπορεί να απαιτεί provider-specific flattening ή συμπεριφορά alias. Ακολουθήστε τον DNS στόχο που επιστρέφει το Dockup και τις δυνατότητες του authoritative DNS provider.

Επιλέξτε ένα canonical host και κάντε redirect τις εναλλακτικές στο επίπεδο της εφαρμογής ή του routing. Η ταυτόχρονη εξυπηρέτηση των www και apex χωρίς canonical policy μπορεί να διαχωρίσει cookies, analytics, cache entries και search indexing.

Ελέγξτε τις παραδοχές για την ανανέωση certificate

Το managed TLS καταργεί την ανάγκη εκτέλεσης renewal client μέσα στο container, όμως το hostname πρέπει να συνεχίσει να επιλύεται σωστά. Μια μελλοντική migration DNS, αλλαγή proxy ή διαγραμμένη εγγραφή μπορεί να διακόψει την επικύρωση.

Συμπεριλάβετε την κατάσταση του domain στους τακτικούς ελέγχους:

dockup domain list production/web --json
dockup uptime production/web --hours 24 --json

Το runbook για custom domain και automatic TLS θα πρέπει να αναφέρει τον υπεύθυνο DNS, την επαφή για renewal και την ημερομηνία του τελευταίου external certificate check. Έτσι αποφεύγετε να αναζητάτε τον υπεύθυνο μόνο όταν προκύψει incident certificate.

Προστατέψτε τα non-production hostnames

Τα staging και preview hostnames μπορεί να εκθέσουν ημιτελείς λειτουργίες και production-shaped data. Χρησιμοποιήστε authentication στην εφαρμογή όπου απαιτείται, ορίστε indexing policy στο επίπεδο της εφαρμογής και περιορίστε τη διανομή των non-production URLs.

Οι οδηγίες για search engines δεν αποτελούν access control. Ένα προστατευμένο environment εξακολουθεί να χρειάζεται authentication και κατάλληλη διαχείριση δεδομένων.

Ελέγξτε ξανά μετά τη διάδοση

Επαναλάβετε τα εξωτερικά HTTPS και callback tests αφού παρέλθει πλήρως το αρχικό DNS TTL.

Ξεκινήστε με ένα deployment που μπορεί να επαληθευτεί

Συνδέστε αρχικά ένα μη κρίσιμο hostname, διατηρήστε το platform URL κατά τη διάρκεια της διάδοσης και καταγράψτε την ακριβή DNS τιμή που απαιτείται για rollback.

Ξεκινήστε δωρεάν στο app.dockup.ai. Το Free plan κοστίζει $0 τον μήνα, περιλαμβάνει αρχικό credit $10 και υποστηρίζει ένα workspace, τρεις databases και τρία deployments.

FAQ

Ποια εγγραφή DNS χρειάζεται ένα Dockup custom domain;

Εκτελέστε το dockup domain add και δημιουργήστε την εγγραφή DNS που εμφανίζεται στην απόκρισή του. Χρησιμοποιήστε τον στόχο που επιστρέφεται αντί να αντιγράψετε μια τιμή από άλλο service.

Πότε μπορεί το Dockup να εκδώσει TLS για ένα custom domain;

Αφού η εγγραφή DNS του hostname περάσει την επαλήθευση domain του Dockup, ζητήστε την έκδοση certificate με την τεκμηριωμένη εντολή domain ssl.

Χρειάζεται το container μου να αποθηκεύει TLS certificates;

Όχι. Το Dockup διαχειρίζεται το TLS για το επαληθευμένο custom domain, επομένως το application container δεν χρειάζεται αρχεία certificate ή διαδικασία renewal.

Μπορεί το Dockup να εκθέσει ένα επιπλέον container port;

Ναι. Οι εντολές port μπορούν να δημιουργήσουν ένα ξεχωριστό auto-generated domain για ένα επιπλέον public port χωρίς να απαιτείται custom DNS.

Τι πρέπει να ελέγξω όταν λειτουργεί το platform URL αλλά αποτυγχάνει το custom domain;

Εστιάστε στις εγγραφές DNS, στη διάδοση, στην επαλήθευση του domain και στην κατάσταση του certificate. Το platform URL που λειτουργεί δείχνει ότι το επίπεδο της εφαρμογής πιθανότατα λειτουργεί σωστά.