Score:0

พร็อกซี Nginx L4 ใช้งานได้กับ HTTPS แต่ไม่ใช่กับ HTTP

ธง us

ฉันมีการกำหนดค่าต่อไปนี้เป็นพร็อกซี L4 บน Nginx และทุกอย่างทำงานได้ดี

  ลำธาร {
 

    
    แผนที่ $ssl_preread_server_name $name {
    ชื่อโฮสต์;
    .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; #<-------
    
}


เซิร์ฟเวอร์ {

    ตัวแก้ไข 8.8.8.8;
    ฟัง 443;
    ssl_preread บน;
    proxy_connect_timeout 5 วินาที;
    proxy_pass $name:$server_port;
}

แต่เมื่อมีการร้องขอไซต์ HTTP เช่น "http://neverssl.com/" Nginx ไม่ตอบสนอง มีความคิดสำหรับปัญหานี้หรือไม่?

Ivan Shatsky avatar
gr flag
รูปแบบ `http://` ใช้พอร์ต TCP 80 ในขณะที่บล็อกเซิร์ฟเวอร์ของคุณกำลังฟังพอร์ต 443
Zareh Kasparian avatar
us flag
@อีวานแชตสกี้ เรียนอีวาน ขอบคุณสำหรับการตอบกลับของคุณ พูดตามตรงฉันต้องการให้ทั้ง HTTP และ HTTPS ถูกกำหนดเส้นทางผ่านพร็อกซีของฉัน ครั้งสุดท้ายที่คุณช่วยฉันแก้ไขการกำหนดค่าสำหรับ HTTPS ฉันจะขอบคุณถ้าสามารถแนะนำฉันเกี่ยวกับวิธีกำหนดค่าทั้งสองอย่างในไฟล์กำหนดค่าเดียวกัน
Zareh Kasparian avatar
us flag
@IvanShatsky ฉันคิดว่าควรมีบางสิ่งที่กำหนดค่าใน ssl_preread_server_name;,
Score:1
ธง gr

เท่าที่ฉันรู้ ssl_preread คำสั่งใช้งานได้กับโปรโตคอล HTTPS เท่านั้น ฉันไม่รู้วิธีรับ HTTP เจ้าภาพ ค่าส่วนหัวใน ngx_stream_core_module. คุณสามารถลองใช้เพิ่มเติมได้ เซิร์ฟเวอร์ บล็อกใน http บริบทเหมือนที่แสดง ที่นี่:

http {
    ...
    แผนที่ $http_host $proxy {
        ชื่อโฮสต์;
        .neverssl.com $http_host;
        ...
    }

    เซิร์ฟเวอร์ {
        ฟัง 80;
        ตัวแก้ไข 8.8.8.8;
        ที่ตั้ง / {
            ถ้า ($proxy = '') { ส่งคืน 403; } # ส่งคืน HTTP 403 Forbidden สำหรับโดเมนที่ไม่แสดง
            proxy_set_header โฮสต์ $proxy;
            ปิด proxy_redirect;
            proxy_connect_timeout 5 วินาที;
            proxy_pass http://$proxy;
        }
    }
}

ลำธาร {
    ... # การกำหนดค่าสตรีมสำหรับพอร์ต HTTPS 443 ที่นี่
}

ไม่มีความจำเป็นต้องใช้ $server_port ตัวแปรที่สตรีมเซิร์ฟเวอร์บล็อก คุณกำลังฟังบนพอร์ต 443 เท่านั้น ดังนั้นคุณจึงใช้งานได้ proxy_pass $ชื่อ:443;

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา