Hướng dẫn di chuyển của đối thủ cạnh tranh
Di chuyển từ Microsoft IIS sang Webship mà không cắt trực tiếp.
Thay thế các binding của IIS, quy tắc proxy của ARR, định tuyến URL Rewrite, và TLS edge bằng Webship trong khi vẫn giữ các phụ thuộc ứng dụng Windows phía sau nó.
Xác định ranh giới di chuyển trước khi thay đổi lưu lượng.
Bắt đầu bằng cách chỉ di chuyển hành vi mà Webship có thể sao chép và xác thực. Giữ xác thực ứng dụng, khám phá dịch vụ, kịch bản và các quy tắc bộ nhớ đệm chuyên biệt trên nguồn hiện tại cho đến khi các bản thay thế của chúng vượt qua các bài kiểm tra giống môi trường sản xuất.
Dịch đường dẫn sản xuất nhỏ nhất trước.
Mảnh nguồn xác định khái niệm di chuyển; mảnh Webship hiển thị hình dạng mục tiêu. Thay thế các miền ví dụ, địa chỉ, chứng chỉ, giới hạn và đường dẫn kiểm tra sức khỏe bằng các giá trị được xác thực cho môi trường của bạn.
<rewrite>
<rules>
<rule name="ReverseProxy" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="http://127.0.0.1:8080/{R:1}" />
</rule>
</rules>
</rewrite>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Ánh xạ khái niệm, không phải cú pháp.
Chỉ dẫn kỹ thuật không phải lúc nào cũng khớp một-một. Sử dụng bảng này để tìm khu vực cấu hình Webship tương đương, sau đó kiểm tra cấu hình hiệu quả và hành vi chạy thực tế.
| Khái niệm hoặc chỉ thị hiện tại | Mục tiêu cấu hình Webship |
|---|---|
IIS binding | listen + [reverse_proxy.protocols] |
URL Rewrite rule | [[reverse_proxy.routes]] |
ARR rewrite URL | [[reverse_proxy.upstreams]] |
IIS certificate binding | [reverse_proxy.tls] / [[sites]] cert + key |
Sử dụng cắt chuyển năm bước có thể đảo ngược.
Giữ listener cũ sẵn sàng cho đến khi Webship đã vượt qua các cổng kiểm tra về tính đúng đắn, khả năng, bảo mật, khả năng quan sát và khôi phục trên lưu lượng đại diện.
- 1
Hành vi quan sát được của kho hàng
Ghi lại trình nghe, miền, tuyến đường, upstream, chứng chỉ, chuyển hướng, xác thực, quy tắc cache, kiểm tra sức khỏe, giới hạn và các tích hợp vận hành.
- 2
Dịch một ranh giới
Di chuyển một máy chủ hoặc tuyến vào TOML nghiêm ngặt. Giữ các mô-đun và logic ứng dụng đặc thù nhà cung cấp phía sau Webship cho đến khi các phương án thay thế riêng biệt được chứng minh.
- 3
Xác thực ngoại tuyến và tại chỗ
Chạy --check-config và --print-effective-config, kiểm tra kết quả đã bị ẩn, khảo sát sức khỏe cục bộ và thực hiện TLS trên cả TCP và UDP khi HTTP/3 được bật.
- 4
Lưu lượng thực canary
Gửi một lát lưu lượng quan sát được nhỏ tới Webship. So sánh mã trạng thái, tiêu đề, nội dung, độ trễ, sức khỏe upstream, hành vi cache, nhật ký và các quyết định bảo mật.
- 5
Quảng bá với khả năng hoàn tác sẵn sàng
Tăng lưu lượng trong các giai đoạn đã đo lường. Giữ mục tiêu trước đó ở trạng thái khỏe mạnh và có thể định tuyến ngay lập tức cho đến khi cửa sổ quan sát và các cổng tải đã thỏa thuận được vượt qua.
Xác thực trước. Quay lại bằng cách định tuyến, không phải chỉnh sửa trực tiếp.
Xác thực tệp ứng viên, kiểm tra cấu hình hiệu quả đã được biên tập, và thăm dò trình nghe riêng tư trước khi thay đổi lưu lượng. Giữ nguyên tệp nhị phân cũ, cấu hình, trình nghe, và mục tiêu DNS hoặc cân bằng tải cho đến khi cửa sổ quan sát kết thúc.
/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