Điểm:0

nginx Reverse-Proxy: sử dụng mô-đun luồng để chuyển qua và proxy ngược

lá cờ in

Tôi sử dụng mô-đun luồng để chuyển lưu lượng truy cập tls mà tôi không thể đảo ngược proxy, ví dụ: bởi vì tôi không có chứng chỉ (cài đặt 3CX cục bộ) hoặc nó bị hỏng nội dung (ssl vpn với chứng chỉ ứng dụng khách). Sau đó, tôi chuyển tiếp "phần còn lại" sang một IP khác trên cùng một Máy chủ (127.0.0.1) để ủy quyền ngược. Vấn đề là remote_addr không phải lúc nào cũng là 127.0.0.1 và dường như không có cách nào để đặt địa chỉ từ xa "thực". Để tránh điều này, tôi đã kích hoạt proxy_protocol và sử dụng $proxy_protocol_addr.

Tuy nhiên, điều này phá vỡ tất cả các trang web thông qua và tôi không tìm được cách bật proxy_protocol một cách có điều kiện chỉ cho "mặc định"

Tôi làm tất cả những điều này để có thể so khớp trên sni và sử dụng một IP duy nhất cho tất cả các trang web.

Tôi không muốn làm chính xác theo cách này, nếu có ai có ý tưởng làm thế nào để đạt được điều này theo một cách khác/tốt hơn, tôi sẽ lắng nghe.

dòng {
  bản đồ $ssl_preread_server_name $targetBackend {
    3cx.example.com 192.168.1.2:443;
    vpn.example.com 192.168.1.3:443;
    mặc định 127.0.0.1:443;
  }
  người phục vụ {
    nghe 192.168.1.100:443;
    proxy_connect_timeout 1;
    proxy_timeout 3s;
    bộ phân giải 192.168.1.1;
    proxy_protocol bật;
    proxy_pass $ targetBackend;
    ssl_preread on;
  }

vậy ... làm thế nào để biến proxy_protocol có điều kiện (afaik nếu không hoạt động trong ngữ cảnh luồng) hoặc giải quyết nó theo cách khác?

Điểm:0
lá cờ us

Có vẻ như bạn cần cài đặt giao diện người dùng cho 3cxvpn giải mã giao thức PROXY và chuyển đổi nó thành các yêu cầu HTTP cho máy chủ web thực tế.

Một tùy chọn khác là có các phiên bản nginx riêng biệt cho các dịch vụ web và giao thức được ủy quyền.

Questi avatar
lá cờ in
Không, điều này không hoạt động, tôi đã thử điều này nhưng có vẻ như nó hiểu theo nghĩa đen và không giải quyết được biến :-(
lá cờ us
Sau đó, tôi đoán bạn cần cài đặt một proxy tương thích trước `3cx` và `vpn`, proxy này giải mã giao thức PROXY và chuyển tiếp yêu cầu tới các trang web.
Questi avatar
lá cờ in
Vì vậy, về cơ bản, một proxy luồng có proxy_protocol, sau đó chuyển tiếp đến một proxy luồng khác sẽ lắng nghe proxy_protocol và sau đó chuyển tiếp mà không có proxy_protocol? Liệu điều đó có hiệu quả? Đây có phải là giải pháp dễ nhất? nghe có vẻ là một cách giải quyết
lá cờ us
Vâng, đó là một cách giải quyết khác, nhưng vì `proxy_protocol` có điều kiện dường như không khả thi, nên đó là một cách. Một cách khác là chạy hai phiên bản nginx riêng biệt, phiên bản còn lại xử lý trang web và phiên bản còn lại ủy quyền.
Questi avatar
lá cờ in
được rồi cảm ơn. có vẻ như đây là giải pháp thay thế nhưng nó là giải pháp duy nhất? nếu có ai biết giải pháp tốt hơn, vui lòng đăng bài, cho đến lúc đó tôi sẽ đánh dấu đây là giải pháp. cảm ơn một lần nữa Trên thực tế ... tôi nhận thấy "câu trả lời" trong các bình luận không phải là câu trả lời ... Có lẽ bạn có thể đăng câu trả lời mới hoặc chỉnh sửa câu trả lời hiện tại của mình?
lá cờ us
Tôi đã cập nhật câu trả lời.

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