Score:0

Nginx เขียนกฎใหม่เพื่อให้ php เห็นรูปแบบ https

ธง cn

ฉันต้องการให้แอปพลิเคชัน pho ของฉันเห็นเฉพาะรูปแบบ https แม้ว่าการเชื่อมต่อที่ปลอดภัยจะสิ้นสุดลงแล้วก็ตาม

ฉันมีการตั้งค่าต่อไปนี้: เบราว์เซอร์ --https--> nginx --http--> nginx --> ซ็อกเก็ต php-fpm

ตอนนี้ฉันต้องการแอปพลิเคชัน php เพื่อบันทึกเกี่ยวกับคำขอรูปแบบ https ดั้งเดิมเท่านั้น

เป็นไปได้ไหม?

ทางเลือกเดียวที่ฉันเห็นคือทำให้ทราฟฟิก nginx เป็น nginx ผ่าน https ด้วย แต่ฉันต้องการหลีกเลี่ยงค่าโสหุ้ยสำหรับการจราจรในท้องถิ่น

Tarion avatar
cn flag
อีกวิธีคือหวังว่าแอปพลิเคชันจะจัดการส่วนหัว x-forwarded-proto ฉันจะตรวจสอบเช่นกัน
Richard Smith avatar
jp flag
แอปพลิเคชัน PHP อาจใช้ `$_SERVER['REQUEST_SCHEME']` หรือ `$_SERVER['HTTP_X_FORWARDED_PROTO']` เพื่อกำหนดโครงร่าง พารามิเตอร์เหล่านี้สามารถตั้งค่าและ/หรือแทนที่ได้ในไฟล์การกำหนดค่า Nginx ของคุณ
Tarion avatar
cn flag
HTTP_X_FORWARDED_PROTO เป็นเพียงฟิลด์ส่วนหัว จะแทนที่ REQUEST_SCHEME ได้อย่างไร
Tarion avatar
cn flag
บางทีนี่อาจเป็นสิ่งที่ฉันต้องการ? https://www.nginx.com/resources/wiki/start/topics/examples/fastcgiexample/
Score:0
ธง cn

วิธีแก้ไขคือการแทนที่คุณสมบัติโดยใช้ fastcgi_param REQUEST_SCHEME 'https'; หลังจาก รวมถึง fastcgi.conf;

ตำแหน่ง ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # หมายเหตุ: คุณควรมี "cgi.fix_pathinfo = 0;" ใน php.ini

    # # ด้วย php5-cgi เพียงอย่างเดียว:
    # fastcgi_pass 127.0.0.1:9000;
    # ด้วย php5-fpm:
    fastcgi_pass ยูนิกซ์:/run/php/php7.4-fpm.sock;
    fastcgi_index index.php;
    รวมถึง fastcgi.conf;
    fastcgi_param REQUEST_SCHEME 'https';
    fastcgi_param HTTPS 'เปิด';
}

โพสต์คำตอบ

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