Proxy truyền tiếp và Proxy ngược: Những khác biệt kiến trúc rõ ràng

Proxy truyền tiếp so với Proxy ngược

Proxy không có scrapeless cung cấp các tuyến proxy truyền tiếp cho lưu lượng web do khách khởi xướng, trong khi proxy ngược thuộc về đường dẫn phân phối ứng dụng bên server.

TL;DR

  • Một proxy truyền tiếp đại diện cho khách hàng. Khách hàng chọn nó để truy cập nhiều điểm đến bên ngoài thông qua các tuyến ra có kiểm soát.
  • Một proxy ngược đại diện cho các server. Khách hàng kết nối với nó như là điểm dịch vụ công cộng, và nó chọn một nguồn gốc nội bộ.
  • Sự khác biệt là vai trò kiến trúc. Caching, TLS, lọc, và phân phối tải có thể xuất hiện ở cả hai phía nhưng không xác định hướng.
  • Tầm nhìn là ngược lại. Các nguồn gốc thấy một proxy truyền tiếp như là kết nối của khách hàng; khách hàng thấy một proxy ngược như là kết nối dịch vụ.
  • Một số sản phẩm có thể thực hiện cả hai vai trò. Phân loại mỗi triển khai bằng cách ai đã chọn môi giới và bên nào mà nó đại diện.

Định nghĩa

Proxy truyền tiếp so với proxy ngược so sánh bên nào của một kết nối mà môi giới đại diện. Một proxy truyền tiếp được chọn bởi một khách hàng và truy cập các điểm đến bên ngoài thay mặt cho khách hàng đó. Một proxy ngược, cũng được mô tả như một cổng trong thuật ngữ HTTP, chấp nhận các yêu cầu thay mặt cho một hoặc nhiều server nguồn.

Đường đi của gói tin có thể trông giống nhau: một kết nối đến môi giới và một kết nối rời khỏi nó. Sự khác biệt là kiểm soát và ý định. Với một proxy truyền tiếp, khách hàng biết hoặc chịu sự kiểm soát của môi giới ra ngoài. Với một proxy ngược, khách hàng công cộng có thể coi môi giới như là chính trang web và không bao giờ biết nguồn gốc nào đã phục vụ phản hồi.

Sự phân biệt này được hình thức hóa trong ngữ nghĩa HTTP. Tiêu chuẩn định nghĩa một proxy như một đại lý chuyển tiếp được chọn bởi khách hàng và một cổng như là một môi giới hành động cho một nguồn gốc. Ngành công nghiệp thường sử dụng proxy ngược cho vai trò cổng đó.

Đường đi yêu cầu Bên cạnh Nhau

Trong một đường đi proxy truyền tiếp, trình duyệt hoặc tập lệnh gửi điểm đến mục tiêu đến proxy. Proxy xác thực khách hàng, áp dụng các quy tắc ra ngoài, chọn một địa chỉ ra đi, và mở kết nối đến điểm đến. Nguồn gốc nhận một yêu cầu từ đường đi proxy và trả lại phản hồi của nó qua cùng một môi giới.

Trong một đường đi proxy ngược, DNS cho dịch vụ công cộng chỉ đến khách hàng đến proxy ngược. Proxy kết thúc kết nối vào, chọn một nguồn gốc theo quy tắc định tuyến hoặc sức khỏe, và tạo một yêu cầu nội bộ. Nguồn gốc trả lại phản hồi cho proxy ngược, cái gửi phản hồi công cộng đến khách hàng.

Cả hai đường đi có thể thêm siêu dữ liệu chuyển tiếp. RFC 7239 định nghĩa một trường Được chuyển tiếp cho thông tin như giao thức, host, và địa chỉ mà khách hàng thấy ban đầu. Các triển khai phải quyết định các bước nào được tin cậy trước khi tiêu thụ siêu dữ liệu này vì một khách hàng không được tin cậy có thể gửi các trường tương tự.

  1. Khách hàng chọn và xác thực đến một điểm cuối proxy.
  2. Proxy áp dụng các quy tắc hồ bơi, vị trí, phiên và truy cập.
  3. Proxy tạo ra một kết nối ra ngoài hướng đến điểm đến yêu cầu.
  4. Phản hồi điểm đến trở lại qua proxy đến khách hàng.

So sánh tổng quát

Proxy truyền tiếp và Proxy ngược được hiểu tốt nhất như một gói thuộc tính mạng và phiên quan sát được thay vì một nhãn tiếp thị.

Kích thướcTùy chọn ATùy chọn B
Bên đại diệnKhách hàngServer nguồn
Người chọn điển hìnhKhách hàng, thiết bị, hoặc mạng raNhà điều hành dịch vụ và DNS
Phạm vi điểm đếnNhiều nguồn gốc bên ngoàiMột nhóm ứng dụng hoặc dịch vụ
Địa chỉ công cộng ẩnMạng khách hàng khỏi nguồn gốcĐịnh hình nguồn từ khách hàng
Kiểm soát chínhTruy cập ra ngoài và đi raGiao hàng vào và định tuyến nguồn

Trường hợp sử dụng thông thường

Trường hợp sử dụng đúng là trường hợp mà đường proxy đáp ứng một yêu cầu mạng hoặc định vị đã định nghĩa và truy cập cơ sở hạ tầng được ủy quyền.

Tiến forward: truy cập dữ liệu được định vị

Một khách hàng được ủy quyền có thể chọn một đi ra dân cư, trung tâm dữ liệu hoặc ISP cho nghiên cứu khu vực công.

Tiến forward: đi ra doanh nghiệp

Một công ty có thể xác thực người dùng và áp dụng chính sách điểm đến ra ngoài tại một cổng trung tâm.

Lùi lại: định tuyến ứng dụng

Một dịch vụ có thể gửi yêu cầu đến các nguồn khác nhau dựa trên máy chủ, đường dẫn, khả năng sẵn có, hoặc quy tắc triển khai.

Lùi lại: cách ly nguồn

Các khách hàng công cộng có thể tiếp cận ứng dụng mà không cần biết trực tiếp về địa chỉ máy chủ nội bộ.

Làm thế nào để biết Proxy nào bạn cần

Hỏi ai kiểm soát người trung gian. Nếu một khách hàng hoặc mạng khách hàng cấu hình nó để đạt được các điểm đến internet không liên quan, đó là một proxy chuyển tiếp. Nếu chủ sở hữu ứng dụng đặt nó tại điểm cuối dịch vụ công để nhận lưu lượng cho các nguồn nội bộ, đó là một proxy ngược.

Tiếp theo hỏi điều gì nên được ẩn hoặc kiểm soát. Proxy chuyển tiếp tập trung vào đi ra của khách hàng, chọn một khu vực ra ngoài, hoặc thay đổi địa chỉ hiện diện đến các điểm đến. Proxy đảo ngược tập trung vào chính sách vào, bảo vệ định hình nguồn, và định tuyến yêu cầu qua các máy chủ ứng dụng. Một cái không thay thế cho cái kia vì chúng giải quyết các mặt đối lập của kiến trúc.

Một hệ thống hoàn chỉnh có thể sử dụng cả hai. Một trình thu thập thông tin nội bộ có thể ra ngoài qua một proxy chuyển tiếp và yêu cầu một trang được cung cấp qua proxy đảo ngược của trang đó. Mỗi người trung gian nên có các ranh giới tin cậy riêng biệt, nhật ký, thông tin đăng nhập, cấu hình TLS, và quyền sở hữu thất bại.

  • Định nghĩa đơn vị công việc. Quyết định xem một yêu cầu, một nhóm trang, hoặc một hành trình trình duyệt nên chia sẻ một danh tính mạng.
  • Giữ nguyên các biến khách hàng. So sánh các đường với cùng một mục tiêu, cookie, tiêu đề, khu vực, và logic trích xuất.
  • Đo lường đầu ra có thể sử dụng. Theo dõi nội dung và khu vực chính xác, không chỉ là thành công kết nối hoặc số lượng địa chỉ IP quan sát được.
  • Bảo vệ thông tin đăng nhập. Giữ tên người dùng proxy, mật khẩu, và token ra khỏi mã nguồn, các URL trong tài liệu, và nhật ký hoạt động.

Bảo mật và Niềm tin Tiêu đề

Các tiêu đề địa chỉ khách hàng được chuyển tiếp chỉ đáng tin cậy khi chúng đến từ một người trung gian được biết đến mà ghi đè đầu vào không đáng tin cậy. Một proxy đảo ngược nên loại bỏ hoặc chuẩn hóa các trường có thể giả mạo trước khi thêm dữ liệu siêu thông tin đáng tin cậy của riêng nó. Một nguồn chấp nhận các tiêu đề chuyển tiếp được cung cấp bởi khách hàng có thể đưa ra các quyết định sai về bảo mật, ghi nhật ký, hoặc tỷ lệ.

Việc chấm dứt TLS cũng khác nhau theo thiết kế. Một proxy chuyển tiếp có thể mang một đường hầm CONNECT đầu cuối hoặc thực hiện kiểm tra được quản lý dưới một chính sách tin cậy rõ ràng. Một proxy đảo ngược thường chấm dứt kết nối TLS công cộng cho dịch vụ và tạo một kết nối khác được bảo vệ đến nguồn. Sở hữu chứng chỉ, khóa, và giao thức nên khớp với các vai trò đó.

Việc lựa chọn proxy tự động là một mối quan tâm của khách hàng. Tập tin PAC có thể chọn một proxy bằng URL, trong khi việc lựa chọn proxy đảo ngược thường đến từ DNS và định tuyến dịch vụ. Việc nhầm lẫn các mặt phẳng cấu hình này tạo ra các triển khai dễ vỡ và quyền sở hữu sự cố không rõ ràng.

Các loại Proxy liên quan và Mô hình Phiên

Kiến trúc proxy trở nên dễ lý luận hơn khi địa chỉ nguồn và hành vi phiên được so sánh một cách độc lập.

Tùy chọnHành viSự phù hợp tốt nhất
Hành động choKhách hàngMáy chủ nguồn
Cấu hình bởiKhách hàng hoặc mạng ra ngoàiNgười vận hành ứng dụng
Khách hàng biết điểm đếnKhách hàng coi proxy như dịch vụ đích
Tầm nhìn nguồnThấy đường dẫn proxyThường bị ẩn sau proxy ngược
Mục tiêu điển hìnhEgress, chính sách, địa phương hóaGiao hàng, định tuyến, cô lập nguồn gốc

Hoạt động và Sử dụng Có trách nhiệm

Xem lớp proxy như cơ sở hạ tầng được đo lường. Ghi lại khu vực đã chọn, lớp proxy, chính sách phiên, máy chủ mục tiêu, trạng thái phản hồi, thời gian phản hồi, và số byte đã chuyển mà không ghi nhật ký thông tin xác thực hoặc tải trọng nhạy cảm. Phân tách các lỗi mạng khỏi các lỗi ứng dụng: một proxy có thể tiếp cận vẫn có thể trả lại từ chối bên mục tiêu, trong khi một trang hợp lệ vẫn có thể thất bại khi phân tích. Sự phân tách này giúp lập kế hoạch năng lực và xem xét sự cố trở nên hữu ích hơn nhiều so với một bộ đếm thành công đơn lẻ.

Một proxy thay đổi đường dẫn mạng, nhưng nó không cấp quyền thu thập hoặc sử dụng dữ liệu. Các đội nên giới hạn việc thu thập dữ liệu vào những dữ liệu mà họ được ủy quyền truy cập, đọc các điều khoản dịch vụ của mục tiêu, tôn trọng các yêu cầu về quyền riêng tư và bảo vệ dữ liệu áp dụng, và tránh các nguồn tư nhân, bí mật hoặc hạn chế. Khối lượng thu thập nên phù hợp với nhu cầu kinh doanh hợp pháp thay vì lưu lượng tối đa mà một nhóm proxy có thể gửi.

Một thiết kế sản xuất cũng nên thiết lập độ đồng thời cấp máy chủ, ngân sách yêu cầu, phạm vi thông tin xác thực, và quy tắc giữ gìn trước khi lưu lượng bắt đầu. Ngừng thu thập khi điểm đến hoặc tài khoản chỉ ra rằng quyền truy cập không được phép. Giữ dữ liệu nhạy cảm ra khỏi các định danh phiên proxy, và tài liệu ai là người sở hữu cấu hình lộ trình, phản hồi sự cố, và xem xét nhà cung cấp.

Kết luận

Proxy Tiến vs Proxy Ngược mô tả một phần cụ thể trong đường dẫn giữa một khách hàng và một điểm đến. Một triển khai âm thanh định danh chính xác phần đó, tách nó ra khỏi chính sách giao thức và phiên, kiểm tra nó chống lại quy trình công khai dự kiến, và xem proxy như cơ sở hạ tầng được kiểm soát thay vì một bảo đảm truy cập toàn diện.

Bắt đầu với đường dẫn ít phức tạp nhất đáp ứng yêu cầu đã xác minh. Chỉ thêm lựa chọn địa lý, xoay vòng, duy trì, hoặc một nguồn IP khác khi hành vi mục tiêu đã đo lường biện minh cho sự thay đổi. Cách tiếp cận đó giữ cho quyết định về hiệu suất, chi phí, danh tính và tuân thủ trở nên rõ ràng với nhóm vận hành quy trình công việc.

Sẵn sàng để Xây dựng một Quy trình Làm việc Proxy Được Kiểm soát?

Sử dụng Proxy Không Rác để đánh giá các lộ trình được quản lý và hành vi phiên cho các tác vụ dữ liệu web công khai được ủy quyền.

Đăng ký ngay hôm nay và nhận $5 tín dụng miễn phíkhông yêu cầu thẻ tín dụng.

Đòi Tín dụng $5 của Bạn →

Câu hỏi thường gặp

Sự khác biệt đơn giản nhất giữa proxy tiến và proxy ngược là gì?

Một proxy tiến hoạt động cho khách hàng đi ra ngoài để đến các máy chủ bên ngoài, trong khi một proxy ngược hoạt động cho các máy chủ nhận lưu lượng khách hàng công khai. Bên được đại diện, không phải một tính năng như bộ nhớ đệm hoặc TLS, xác định sự khác biệt.

Phần mềm giống nhau có thể vừa là proxy tiến vừa là proxy ngược không?

Có. Một số phần mềm proxy hỗ trợ cả hai chế độ triển khai. Một phiên bản đang chạy vẫn nên có một vai trò, chính sách và ranh giới tin cậy rõ ràng. Phân loại nó theo ai chọn nó, những điểm đến mà nó phục vụ, và liệu nó đại diện cho khách hàng hay nguồn gốc.

Cân bằng tải có phải là một proxy ngược không?

Một bộ cân bằng tải lớp ứng dụng chấp nhận các yêu cầu của khách hàng và chuyển tiếp chúng đến các nguồn đã chọn thực hiện vai trò của một proxy ngược. Phân phối tải ở lớp thấp hơn có thể hoạt động mà không cần giải thích HTTP, vì vậy nhãn chính xác phụ thuộc vào lớp mạng và hành vi.

Các proxy tiến và ngược có ẩn địa chỉ IP không?

Một proxy tiến thay đổi địa chỉ mà một nguồn nhìn thấy cho kết nối của khách hàng. Một proxy ngược ẩn địa chỉ nguồn trực tiếp khỏi các khách hàng công khai. Siêu dữ liệu chuyển tiếp đáng tin cậy có thể giữ lại thông tin về các bước nhảy trước đó, và không thiết kế nào loại bỏ cookie, tài khoản, hoặc danh tính ứng dụng khác.

Một yêu cầu có thể đi qua cả hai loại proxy không?

Có. Một khách hàng có thể sử dụng một proxy tiến để đến một dịch vụ công khai mà chính nó được tiếp cận bởi một proxy ngược. Mỗi bước nhảy tạo ra một ranh giới tin cậy và khả năng quan sát riêng biệt, do đó tiêu đề, TLS, xác thực, và nhật ký phải được diễn giải theo mỗi bước nhảy.

Tài liệu tham khảo