Chạy nhiều máy chủ trên cùng một cổng


19

Tôi muốn chạy máy chủ XAMPP và máy chủ Nodejs trên cổng 80.

Nếu máy chủ nhận được yêu cầu HTTP, thì XAMPP sẽ xử lý nó, nếu máy chủ nhận được yêu cầu Websocket, thì Nodejs

Làm thế nào là nó có thể? Nếu một cổng đã được sử dụng, thì tôi không thể khởi động chương trình máy chủ khác.

Câu trả lời:


45

Bạn sẽ cần sử dụng proxy ngược để thực hiện việc này, ví dụ Apache 2.4. với mod_proxy_wstunnel .

Sử dụng nó như một frontend và sau đó đường hầm các kết nối đến phụ trợ thích hợp.


22

Chỉ một tiến trình duy nhất có thể lắng nghe trên một cổng cụ thể cho cùng một địa chỉ IP và giao thức, bởi vì nếu không thì hệ điều hành sẽ không biết quá trình nào để gửi gói tin nhận được.

Để đạt được những gì bạn muốn, bạn sẽ phải sử dụng proxy ngược sẽ lắng nghe trên cổng 80 và chuyển tiếp lưu lượng truy cập để sửa đích. Có nhiều cách để làm điều này. Ví dụ: bạn có thể thiết lập máy chủ web (Apache) để chuyển tiếp các yêu cầu WebSocket hoặc bạn có thể định cấu hình Node.js để chuyển tiếp lưu lượng HTTP. Nghiên cứu các tùy chọn có sẵn và chọn một trong những phù hợp với nhu cầu của bạn tốt nhất.


3

Cũng như tùy chọn proxy ngược mà người khác đã đề cập, bạn có thể có nhiều địa chỉ IP được gán cho máy. Điều này có thể có giá cho IPv4 (hoặc đơn giản là không khả dụng tùy thuộc vào nơi máy chủ của bạn được lưu trữ) nhưng không nên nếu bạn ở vị trí sử dụng IPv6 (nghĩa là nếu những người kết nối với một hoặc cả hai hoặc dịch vụ của bạn sẽ có khả năng IPv6) . Bằng cách này, cả hai dịch vụ có thể nghe trên cổng 80 trên các địa chỉ khác nhau.

Như bạn chỉ đề cập đến cổng 80, tôi cho rằng bạn không sử dụng HTTPS. Nếu bạn đang sử dụng tùy chọn proxy ngược, bạn cần phải có chứng chỉ SSL nhiều tên hoặc định cấu hình SNI và sống với thực tế là một số máy khách cũ (IE trên XP, phiên bản Android cũ) sẽ không thể kết nối không có lỗi. Tùy chọn nhiều địa chỉ tránh được vấn đề này với chi phí cần thêm địa chỉ được chỉ định.


Chỉ là một điểm nhỏ: nếu bạn đã sử dụng NAT để dịch IP, bạn cũng có thể thực hiện chuyển hướng cổng ở đó. Ví dụ: nếu bạn đang chạy một máy chủ Apache có thể truy cập Internet và muốn sử dụng XAMPP để thử nghiệm, hãy chạy Apache trên một cổng không chuẩn và yêu cầu cổng bên ngoài NAT của bộ định tuyến 80 đến cổng không chuẩn của IP bên trong. Điều này sẽ cho phép chạy XAMPP trên cổng 80.
Calrion
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.