Điểm:-4

Có phải mọi ứng dụng đều cần máy chủ web không?

lá cờ bj

Máy chủ chỉ là một máy có phần mềm máy chủ web (như nginx, apache, v.v.). Khi chúng tôi lưu trữ một trang web trong các dịch vụ lưu trữ như GoDaddy hoặc dịch vụ đám mây, họ có cung cấp phần mềm máy chủ web cho mọi ứng dụng được triển khai hay sẽ chỉ có một phần mềm máy chủ web cho một máy (máy chủ) và mọi ứng dụng sử dụng nó hoặc chúng tôi (máy khách) ) cần thiết lập phần mềm máy chủ web?

Máy chủ có thể có `n' số lượng phần mềm máy chủ web không?

Trong bản ghi DNS, bản ghi của mỗi miền ứng dụng có trỏ đến địa chỉ IP của máy chủ hoặc địa chỉ IP của máy chủ web không?

Nếu tất cả các miền ứng dụng trong một máy chủ trỏ đến cùng một địa chỉ IP, thì các yêu cầu được định tuyến đến ứng dụng cụ thể như thế nào?

Nếu có bất cứ điều gì sai trong câu hỏi, xin vui lòng chỉ ra vì tôi chưa quen với những chủ đề này.

djdomi avatar
lá cờ za
Các yêu cầu đề xuất sản phẩm, dịch vụ hoặc tài liệu học tập là lạc đề vì chúng thu hút các câu trả lời chất lượng thấp, cố chấp và spam, đồng thời các câu trả lời nhanh chóng trở nên lỗi thời. Thay vào đó, hãy mô tả vấn đề kinh doanh mà bạn đang giải quyết, nghiên cứu bạn đã thực hiện và các bước đã thực hiện để giải quyết vấn đề đó.
Điểm:3
lá cờ my

Máy chủ chỉ là một máy có phần mềm máy chủ web (như nginx, apache, v.v.).

Không cần thiết. Máy chủ là một hệ thống máy tính được sử dụng để phục vụ các hệ thống khác (máy khách) với nội dung, dữ liệu mà nó xử lý (hoặc đơn giản là lấy từ các nguồn khác) và trả về máy khách.

Nó có thể là một máy chủ Web, nếu nó phục vụ nội dung thông qua giao thức HTTP, hoặc một máy chủ cơ sở dữ liệu, nếu nó lưu trữ dữ liệu và cho phép thao tác dữ liệu theo cách quan hệ (SQL) hoặc không quan hệ, hoặc một máy chủ DNS, nếu nó phục vụ thông tin về tên máy chủ và địa chỉ IP thông qua giao thức DNS, v.v.

Khi chúng tôi lưu trữ một trang web trong các dịch vụ lưu trữ như GoDaddy hoặc dịch vụ đám mây, họ có cung cấp phần mềm máy chủ web cho mọi ứng dụng được triển khai hay sẽ chỉ có một phần mềm máy chủ web cho một máy (máy chủ) và mọi ứng dụng sử dụng nó hoặc chúng tôi (máy khách) ) cần thiết lập phần mềm máy chủ web?

Nó phụ thuộc. Một số cung cấp các máy ảo (hoặc tương tự) với các máy chủ Web được cài đặt sẵn như Apache và bạn "chỉ" phải định cấu hình chúng đúng cách cho ứng dụng của mình. Những người khác (AWS EC2) chỉ cung cấp các máy ảo đơn giản và bạn phải cài đặt cũng như định cấu hình bất kỳ dịch vụ hoặc gói nào (bao gồm cả máy chủ Web) mà bạn có thể cần.

Máy chủ có thể có `n' số lượng phần mềm máy chủ web không?

Đúng. Cùng một máy chủ có thể lưu trữ các công cụ máy chủ Web khác nhau (ví dụ: Apache Nginx, cho các ứng dụng khác nhau) hoặc thậm chí các phiên bản khác nhau của cùng một công nghệ máy chủ Web (ví dụ: thông qua các bộ chứa) hoặc một công cụ máy chủ Web duy nhất xử lý nhiều ứng dụng (có thể sử dụng máy chủ ảo).

Trong bản ghi DNS, bản ghi của mỗi miền ứng dụng có trỏ đến địa chỉ IP của máy chủ hoặc địa chỉ IP của máy chủ web không?

Nó sẽ trỏ tới bất kỳ địa chỉ IP nào có thể định tuyến và có thể truy cập được từ bên ngoài và bằng cách nào đó được "gắn" với máy chủ Web. Một thiết lập đơn giản có thể là một máy ảo có một địa chỉ IP duy nhất và máy chủ web đang lắng nghe địa chỉ IP đó. Tuy nhiên, máy chủ web cũng có thể lắng nghe nội bộ trên một địa chỉ khác, chẳng hạn như 127.0.0.1 và sử dụng một số kỹ thuật (như NAT) để nhận các yêu cầu HTTP với địa chỉ VM IP làm địa chỉ đích. Và như thế.

Nếu tất cả các miền ứng dụng trong một máy chủ trỏ đến cùng một địa chỉ IP, thì các yêu cầu được định tuyến đến ứng dụng cụ thể như thế nào?

Điều này có thể được thực hiện theo một số cách. Đầu tiên, bạn có thể có các quy trình khác nhau đang nghe trên cùng một địa chỉ IP nhưng trên các cổng khác nhau. Miễn là cổng khác nhau, không có xung đột - http://www.example.com:80 sẽ đến một máy chủ web (hoặc phiên bản máy chủ web) khác với http://www.example.com:8080. Bằng cách sử dụng các cổng khác nhau và buộc mỗi cổng vào một quy trình hoặc "thực thể" quy trình (ví dụ: máy chủ ảo), mỗi yêu cầu được chuyển tiếp đến đúng ứng dụng.

CHỈNH SỬA

Cố gắng trả lời các câu hỏi bổ sung trong các ý kiến.

nếu nhiều ứng dụng được triển khai trên máy chủ dùng chung thay vì máy ảo thì sao? Vì mọi người đều muốn cổng là 443 (mặc định) nếu ứng dụng sử dụng HTTPS, các yêu cầu được định tuyến như thế nào? và địa chỉ IP của bản ghi DNS của miền sẽ trỏ đến là gì?

Nếu nhiều ứng dụng lắng nghe trên cùng một cổng và cùng một IP, các loại thao tác lưu lượng khác có thể được thực hiện. Ví dụ: giả sử cùng một IP được liên kết với ba ứng dụng:

app1.example.com - cổng 443

app2.example.com - cổng 443

app3.example.com - cổng 443

Làm thế nào một yêu cầu HTTP đến cùng một địa chỉ IP và cổng được chuyển hướng đến đúng ứng dụng? Một cách là sử dụng Tiêu đề máy chủ. Nếu một trình duyệt muốn liên hệ với app1.example.com, nó sẽ gửi một yêu cầu HTTP tới cùng một IP và cổng đó với tiêu đề Máy chủ lưu trữ được đặt thành "app1.example.com".Một proxy ngược sẽ nhận yêu cầu đó, đọc giá trị của tiêu đề Máy chủ và chuyển hướng yêu cầu đó tới quy trình được liên kết với "app1.example.com", ngay cả khi quy trình đó lắng nghe trên cùng một IP và cổng như các máy chủ web khác.

Một cách tiếp cận khác dựa trên việc sử dụng máy (VM, baremetal - không thành vấn đề) với nhiều địa chỉ IP. Nếu cùng một máy có nhiều địa chỉ IP, nó có thể lưu trữ các ứng dụng khác nhau trên cùng một cổng nhưng khác địa chỉ mà không cần sử dụng bất kỳ thủ thuật tiêu đề HTTP nào.

lá cờ bj
Này @A.Darwin, nếu nhiều ứng dụng được triển khai trên máy chủ dùng chung thay vì máy ảo thì sao? Vì mọi người đều muốn cổng là 443 (mặc định) nếu ứng dụng sử dụng HTTPS, các yêu cầu được định tuyến như thế nào? và địa chỉ IP của bản ghi DNS của miền sẽ trỏ đến là gì?
lá cờ bj
Ngoài ra, làm thế nào để máy chủ web sẽ được liên kết với từng ứng dụng trong trường hợp này?
lá cờ bj
Sẽ thực sự hữu ích nếu bạn cũng cung cấp câu trả lời cho các máy chủ được chia sẻ (như nhiều ứng dụng được triển khai trong một máy chủ thay vì VM)
lá cờ jm
@vinter Mặc dù một máy chủ nhất định có thể có nhiều dịch vụ web đang chạy (apache, nginx, v.v.) chạy cùng một lúc, nhưng chỉ một phiên bản cụ thể có thể nghe trên cổng 443. Nhiều ứng dụng sẽ yêu cầu nghe trên các cổng khác nhau, có tên máy chủ khác nhau/ CNAMES được xác định (ví dụ: vhost của apache) hoặc được đặt trong trường hợp máy ảo hoặc bộ chứa.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.