Làm thế nào máy chủ HTTP Apache có thể cho phép nhiều kết nối tới cổng 80?


0

Tôi muốn biết làm thế nào để một chương trình máy chủ HTTP Apache phục vụ nhiều khách hàng kết nối với nó tại cùng một cổng 80? Tôi biết về cổng và ổ cắm. Tôi đã tìm kiếm rất nhiều trên internet về nó nhưng không thể tìm thấy câu trả lời giải thích đơn giản nhất. Nhiều câu trả lời đặt ra câu hỏi mới, như câu hỏi này:

Thông thường, đối với mọi máy khách kết nối, máy chủ sẽ tạo ra một tiến trình con giao tiếp với máy khách (TCP). Máy chủ mẹ trao cho con xử lý một ổ cắm được thiết lập để giao tiếp lại với máy khách. Khi bạn gửi dữ liệu đến một ổ cắm từ máy chủ con của bạn, ngăn xếp TCP trong HĐH sẽ tạo một gói trở về máy khách và đặt "từ cổng" thành 80. Nếu một máy chủ chỉ sử dụng một quy trình con duy nhất để phục vụ tất cả các socket sau đó máy chủ được gọi là một quy trình / luồng và nếu máy chủ sử dụng nhiều quy trình phụ để phục vụ mỗi socket theo một quy trình phụ thì máy chủ được gọi là máy chủ đa tiến trình / luồng. Lưu ý rằng không phân biệt loại máy chủ, máy chủ có thể / luôn luôn sử dụng cùng một ổ cắm ban đầu để phản hồi lại (không cần phân bổ cổng máy chủ khác).

Máy chủ HTTP Apache có đa luồng hay một luồng đơn không? Tôi đoán là nó là đa luồng.

Trong trường hợp kết nối liên tục, làm thế nào để máy khách liên lạc lại với con của nó? Có một bảng hoặc một cái gì đó được duy trì bởi quá trình cha mẹ để ánh xạ máy khách đến tiến trình con của nó? hoặc một quá trình con mới được tạo ra mọi lúc? Vòng đời của một quá trình trẻ em là gì?


Apache cung cấp nhiều mô-đun đa xử lý .
Daniel B

Câu trả lời:


1

Apache thực sự là đa luồng, vì nó tạo ra một quy trình mới cho mỗi kết nối mới. Đối với đứa trẻ xử lý suốt đời, nó bị giết khi kết nối bị hủy bỏ, do ngắt kết nối hoặc hết thời gian.


Giả sử kết nối không bị hủy bỏ, làm thế nào để yêu cầu mới của khách hàng được chuyển đến quy trình con cũ? Làm thế nào để ánh xạ được thực hiện tại máy chủ? Có id quá trình con?
KawaiKx

@KawaiKx đó là điều tôi không chắc chắn. Tôi sẽ đoán rằng Apache ánh xạ IP đó tới một ID tiến trình con nhất định
td512

@KawaiKx HĐH thực hiện điều đó. Nhân theo dõi tất cả các ổ cắm cục bộ, cả nghe và kết nối. // Điều đó đang được nói, câu trả lời này quá mức cho mọi thứ. Không có cách nào bất cứ ai sẽ lãng phí toàn bộ quá trình cho mỗi kết nối. Đó sẽ là một chi phí đáng kinh ngạc.
Daniel B
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.