Οδηγός μετανάστευσης ανταγωνιστή
Μετεγκατάσταση από Caddy σε Webship χωρίς τυφλή μετάβαση.
Μετατρέψτε τις διευθύνσεις ιστότοπων Caddyfile, τους αντιστοιχιστές, τους στόχους reverse_proxy, τις ανιχνεύσεις υγείας και τα πιστοποιητικά σε σαφή, επικυρωμένη διαμόρφωση Webship.
Οριστείτε το όριο μετανάστευσης πριν αλλάξετε την κίνηση.
Ξεκινήστε μετακινώντας μόνο τη συμπεριφορά που Webship μπορεί να αναπαράγει και να επαληθεύσει. Αφήστε τον έλεγχο ταυτότητας της εφαρμογής, την ανακάλυψη υπηρεσίας, τα scripts και τους ειδικούς κανόνες cache στην υπάρχουσα προέλευση μέχρι οι αντικαταστάτες τους να περάσουν τεστ που μοιάζουν με παραγωγή.
Μεταφράστε πρώτα τη μικρότερη διαδρομή παραγωγής.
Το αρχικό τμήμα εντοπίζει την έννοια μετανάστευσης· το τμήμα Webship δείχνει το στόχο μορφής. Αντικαταστήστε τα παραδείγματα τομέων, διευθύνσεων, πιστοποιητικών, ορίων και διαδρομών υγείας με τιμές που έχουν επικυρωθεί για το περιβάλλον σας.
app.example.com {
reverse_proxy 127.0.0.1:8080 127.0.0.1:8081 {
health_uri /health
}
}listen = "0.0.0.0:443"
workers = 4
[reverse_proxy]
enabled = true
connect_timeout_ms = 2000
max_retries = 0
[reverse_proxy.protocols]
h1 = true
h2 = true
h3 = true
[reverse_proxy.tls]
cert = "/etc/letsencrypt/live/app.example.com/fullchain.pem"
key = "/etc/letsencrypt/live/app.example.com/privkey.pem"
[[reverse_proxy.routes]]
domain = "app.example.com"
path_prefix = "/"
upstreams = ["127.0.0.1:8080", "127.0.0.1:8081"]
load_balancing = "weighted-peak-ewma"
[[reverse_proxy.upstreams]]
address = "127.0.0.1:8080"
protocol = "http1"
health_check_path = "/health"
health_check_interval_ms = 5000
health_check_timeout_ms = 1000
[[reverse_proxy.upstreams]]
address = "127.0.0.1:8081"
protocol = "http1"
health_check_path = "/health"
health_check_interval_ms = 5000
health_check_timeout_ms = 1000
[[reverse_proxy.policies]]
name = "default"
hosts = []
path_prefixes = ["/"]
methods = []
max_body_bytes = 1048576
total_timeout_ms = 30000Χαρτογραφήστε έννοιες, όχι σύνταξη.
Οι τεχνικές οδηγίες δεν ταιριάζουν πάντα ανά ένα προς ένα. Χρησιμοποιήστε αυτόν τον πίνακα για να εντοπίσετε την αντίστοιχη περιοχή διαμόρφωσης Webship, στη συνέχεια επικυρώστε τη λειτουργική διαμόρφωση και τη συμπεριφορά κατά την εκτέλεση.
| Τρέχουσα έννοια ή οδηγία | Στόχος διαμόρφωσης Webship |
|---|---|
site address | listen + [reverse_proxy.protocols] |
matcher | [[reverse_proxy.routes]] |
reverse_proxy upstreams | [[reverse_proxy.upstreams]] |
health_uri | [[reverse_proxy.upstreams]].health_check_* |
tls | [reverse_proxy.tls] / [[sites]] cert + key |
Χρησιμοποιήστε μια αναστρέψιμη μετάβαση πέντε βημάτων.
Διατηρήστε τον παλιό ακροατή έτοιμο μέχρι το Webship να έχει περάσει τα κατάλληλα τεστ για ορθότητα, χωρητικότητα, ασφάλεια, παρατηρησιμότητα και δυνατότητα επαναφοράς στην εκπροσωπούμενη κυκλοφορία.
- 1
Παρατηρήσιμη συμπεριφορά αποθέματος
Καταγράψτε ακροατές, domains, διαδρομές, upstreams, πιστοποιητικά, επαναγραφές, έλεγχο ταυτότητας, κανόνες cache, probes υγείας, όρια και επιχειρησιακές ενσωματώσεις.
- 2
Μεταφράστε ένα όριο
Μετακινήστε έναν διακομιστή ή δρομολογήστε σε αυστηρό TOML. Διατηρήστε τα ειδικά για τον προμηθευτή μονάδες και τη λογική εφαρμογής πίσω από το Webship μέχρι να αποδειχθούν οι ξεχωριστές αντικαταστάσεις.
- 3
Επιβεβαιώστε εκτός σύνδεσης και τοπικά
Τρέξτε --check-config και --print-effective-config, εξετάστε το λογοκριμένο αποτέλεσμα, ελέγξτε την υγεία τοπικά και χρησιμοποιήστε TLS τόσο μέσω TCP όσο και UDP όταν το HTTP/3 είναι ενεργοποιημένο.
- 4
Canary πραγματική κυκλοφορία
Στείλτε ένα μικρό, παρατηρήσιμο κομμάτι κυκλοφορίας στο Webship. Συγκρίνετε κωδικούς κατάστασης, κεφαλίδες, σώματα, καθυστέρηση, υγεία upstream, συμπεριφορά cache, logs και αποφάσεις ασφαλείας.
- 5
Προωθήστε με έτοιμη δυνατότητα επαναφοράς
Αυξήστε την κυκλοφορία στα μετρημένα στάδια. Διατηρήστε τον προηγούμενο στόχο υγιή και άμεσα δρομολογήσιμο μέχρι να περάσουν το συμφωνημένο παράθυρο παρακολούθησης και οι πύλες φορτίου.
Επικυρώστε πρώτα. Επαναφέρετε μέσω δρομολόγησης, και όχι επεξεργάζοντας ζωντανά.
Επικυρώστε το αρχείο υποψηφίου, ελέγξτε την απορρημένη αποτελεσματική διαμόρφωση και διερευνήστε τον ιδιωτικό ακροατή πριν αλλάξετε την κυκλοφορία. Διατηρήστε το παλιό δυαδικό αρχείο, τη διαμόρφωση, τον ακροατή και τον στόχο DNS ή ισορροπιστή φόρτου μέχρι να κλείσει το παράθυρο παρατήρησης.
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:443/health