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?