Điểm:0

Yêu cầu proxy/Định tuyến tới tên miền phụ tới các địa chỉ IP cục bộ/bảo vệ dây khác nhau?

lá cờ cn

Chúng tôi có một máy ảo có địa chỉ IPv4 công cộng mà chúng tôi ví dụ.com*.example.com điểm miền.

Chúng tôi có một số máy tính công nghệ thấp được phân phối đang thiết lập đường hầm/kết nối bảo vệ dây với máy ảo có thể truy cập công khai.

Chúng tôi muốn máy ảo phục vụ một trang web trên các cổng 80/443, chấp nhận kết nối ssh qua cổng 22, và hơn thế nữa.

Chúng tôi muốn các máy tính công nghệ thấp có thể truy cập công khai, thông qua các tên miền phụ tương ứng như công nghệ thấp-01.example.com, công nghệ thấp-02.example.com, vân vân và các yêu cầu ủy quyền/định tuyến tới các địa chỉ IP cục bộ/bảo vệ dây tương ứng. Điều này sẽ hoạt động cho các trang web thông qua các cổng 80/443, kết nối ssh qua cổng 22, và hơn thế nữa.

Chỉnh sửa: Lý tưởng nhất là chứng chỉ SSL phải được cung cấp từ các máy tính công nghệ thấp và kết nối SSL sẽ không bị chấm dứt trên máy ảo.

Chỉnh sửa: Lý tưởng nhất là các khóa riêng ssh để thiết lập kết nối với các máy tính công nghệ thấp không tồn tại trên máy ảo mà chỉ tồn tại trên máy khách.

Chỉnh sửa: Đối với ssh, chúng tôi có thể mở và định tuyến một cổng duy nhất cho mỗi máy tính công nghệ thấp từ công khai_IPv4:22xxx đến cục bộ/dây bảo vệ_IP:22

Thật không may, sau hai ngày dùng thử cấu hình nginx và gặp lỗi, chúng tôi nhận ra rằng nhiệm vụ này có thể không thể giải quyết chỉ bằng nginx.

Lưu ý: ssh không gửi SNI; nginx không thể nghe trên cùng một cổng cho http cũng như dòng kết nối; và có thể nhiều vấn đề hơn.

Nhưng ngoài ra, chúng tôi hoàn toàn không có ý tưởng và bị choáng ngợp bởi cách tiếp cận nào có thể thực sự giải quyết đúng nhiệm vụ này.

(www\.)?example.com â> IPv4 công khai â> trang web, ssh, v.v.

công nghệ thấp-01.example.com â> IPv4 công khai â> ??? ~> 10.0.0.101 â> trang web, ssh, v.v.

công nghệ thấp-02.example.com â> IPv4 công khai â> ??? ~> 10.0.0.102 â> trang web, ssh, v.v.

â¦

Cảm ơn lời khuyên và thời gian của bạn.

â

Chỉnh sửa: nginx sau dòng config gần với những gì chúng tôi đang cố gắng đạt được. Nhược điểm duy nhất (có thể) là chúng tôi phải xác định cổng theo cách thủ công cho từng máy tính công nghệ thấp thay vì xử lý cổng này một cách linh hoạt như đối với kết nối SSL.

dòng {
  bản đồ $ssl_preread_server_name $name {
    ví dụ.com ví dụ.com;
    www.example.com example.com;
    công nghệ thấp-01.example.com công nghệ thấp-01.example.com;
    công nghệ thấp-02.example.com công nghệ thấp-02.example.com;
  }

  ngược dòng example.com {
    máy chủ 127.0.0.1:8443;
  }

  ngược dòng low-tech-01.example.com {
    máy chủ 10.0.0.101:443;
  }

  thượng nguồn low-tech-02.example.com {
    máy chủ 10.0.0.102:443;
  }

  người phục vụ {
    nghe 443;
    proxy_pass $name;
    ssl_preread on;
  }

  người phục vụ {
    nghe 22101 ;
    proxy_pass 10.0.0.101:22;
  }

  người phục vụ {
    nghe 22102 ;
    proxy_pass 10.0.0.102:22;
  }

  â¦
}
Ivan Shatsky avatar
lá cờ gr
Có lẽ bạn có thể sử dụng lệnh `s_client` từ máy khách khi kết nối qua giao thức SSH? Kiểm tra câu trả lời [này](https://serverfault.com/a/1023845/498657).
A.B avatar
lá cờ cl
A.B
Hãy xem Q/A này để hiểu giới hạn: https://serverfault.com/questions/878080/how-do-i-make-protocol-foo-hostname-aware
Điểm:0
lá cờ us

Bạn cần lấy nhiều địa chỉ IP trên máy chủ, một địa chỉ cho mỗi tên miền phụ mà bạn muốn sử dụng.

Sau đó, bạn cần chỉ định một địa chỉ IP công khai cho từng máy ảo. Sau đó, bạn có thể liên kết tên miền phụ với địa chỉ IP. Trong VM, người ta có thể thực hiện chuyển tiếp cổng tới bất kỳ đích cuối cùng nào mà người ta muốn.

fooness avatar
lá cờ cn
Cảm ơn bạn đã trả lời.Thật không may, điều này không giải quyết được vấn đề. Nếu có sẵn các địa chỉ IPv4 công cộng, thì chúng tôi sẽ không cần VM để ủy quyền/định tuyến các yêu cầu.
lá cờ us
Đó là tùy chọn duy nhất cho SSH nếu bạn muốn ánh xạ miền tới các phiên bản khác nhau. Một tùy chọn khác là các cổng TCP riêng biệt cho từng miền, sau đó thực hiện chuyển tiếp cổng.
fooness avatar
lá cờ cn
Các cổng TCP riêng biệt cho từng miền là những gì chúng tôi đã sử dụng vào lúc này, vâng. Tuy nhiên, chúng tôi ước rằng điều này có thể xảy ra một cách linh hoạt bằng cách nào đó thay vì tạo thủ công một mục nhập cho từng cổng, ví dụ: khối `stream` nginx của chúng tôi.
lá cờ us
Dù cơ chế là gì, bạn cần quản lý cấu hình của nó bằng cách nào đó. Một hệ thống quản lý cấu hình sẽ giúp với nó.

Đă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.