Điểm:0

Proxy Nginx L4 Hoạt động với HTTPS nhưng không hoạt động với HTTP

lá cờ us

Tôi có cấu hình sau là proxy L4 qua Nginx và mọi thứ đều hoạt động tốt.

  dòng {
 

    
    bản đồ $ssl_preread_server_name $name {
    tên máy chủ;
    .ipchicken.com $ssl_preread_server_name;
    .bbc.com $ssl_preread_server_name;
    .bbc.co.uk $ssl_preread_server_name;
    .bbci.co.uk $ssl_preread_server_name;
    .neverssl.com $ssl_preread_server_name; #<-------
    
}


người phục vụ {

    bộ phân giải 8.8.8.8;
    nghe 443;
    ssl_preread on;
    proxy_connect_timeout 5s;
    proxy_pass $name:$server_port;
}

Nhưng khi trang web HTTP được yêu cầu, như "http://neverssl.com/" thì Nginx không phản hồi. Bất kỳ ý tưởng cho vấn đề này?

Ivan Shatsky avatar
lá cờ gr
Lược đồ `http://` sử dụng cổng TCP 80, trong khi khối máy chủ của bạn đang lắng nghe trên cổng 443.
Zareh Kasparian avatar
lá cờ us
@IvanShatsky. Ivan thân mến, Cảm ơn bạn đã trả lời. thành thật mà nói, tôi muốn cả HTTP và HTTPS được định tuyến thông qua proxy của mình. Lần trước bạn đã giúp tôi sửa cấu hình của mình cho HTTPS. Tôi sẽ rất biết ơn nếu có thể hướng dẫn tôi cách cấu hình cả hai trong cùng một tệp cấu hình.
Zareh Kasparian avatar
lá cờ us
@IvanShatsky tôi nghĩ nên có thứ gì đó được định cấu hình trong ssl_preread_server_name;,
Điểm:1
lá cờ gr

Theo như tôi biết ssl_preread lệnh chỉ hoạt động với giao thức HTTPS. Tôi không biết cách lấy HTTP Chủ nhà giá trị tiêu đề trong ngx_stream_core_module. Bạn có thể thử sử dụng thêm người phục vụ khối trong http bối cảnh như được hiển thị đây:

http {
    ...
    bản đồ $http_host $proxy {
        tên máy chủ;
        .neverssl.com $http_host;
        ...
    }

    người phục vụ {
        nghe 80;
        bộ phân giải 8.8.8.8;
        địa điểm / {
            nếu ($proxy = '') { return 403; } # Trả lại HTTP 403 Bị cấm cho các miền không công khai
            proxy_set_header Máy chủ $proxy;
            proxy_redirect tắt;
            proxy_connect_timeout 5s;
            proxy_pass http://$proxy;
        }
    }
}

dòng {
    ... # cấu hình luồng cho cổng HTTPS 443 tại đây
}

không có nhu cầu sử dụng $server_port biến tại khối máy chủ luồng, bạn chỉ đang nghe trên cổng 443, vì vậy bạn chỉ có thể sử dụng proxy_pass $name:443;

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