Score:0

จะแคช PHP บน nginx ได้อย่างไร

ธง in
Sam

บอกว่าฉันกำลังสร้างเว็บไซต์ข่าวบน ตัวอย่าง.คอมและตอนนี้ฉันมี example.com/latest.php ซึ่งเป็นสคริปต์ที่ใช้ค้นหาจำนวนมาก และฉันต้องการปรับปรุงประสิทธิภาพ ฉันจะกำหนดค่า php/nginx ได้อย่างไร เพื่อให้สร้างแคช และเมื่อผู้เยี่ยมชมมา แคชจะถูกส่งไป ดังนั้นเขาจึงไม่ต้องรอนานเกินไป
PS: ใน example.com/donotcache.php ฉันไม่ต้องการให้แคช (สคริปต์การนับผู้ใช้) ทำอย่างไร รายการคำถาม:

  1. ฉันต้องการโมดูลอะไร
  2. การแก้ไขอะไรที่ต้องทำกับ nginx config?
  3. จะเกิดอะไรขึ้นถ้าฉันต้องใช้ CSP (นโยบายความปลอดภัยของเนื้อหา) ทุกครั้ง (จากนั้นทุกหน้าจะเป็นไดนามิก)
us flag
สิ่งแรกที่คุณควรทำคือตรวจสอบโครงสร้างฐานข้อมูลและดัชนีของคุณ หากคุณต้องการใช้ CSP nonce คุณจะไม่สามารถแคชใน nginx ได้ การกำหนดค่าการแคช nginx ขึ้นอยู่กับการกำหนดค่าปัจจุบันของคุณ ดังนั้นโปรดเพิ่มผลลัพธ์ของ `nginx -T` ให้กับคำถามเพื่อให้สามารถเพิ่มคำสั่งที่เกี่ยวข้องได้
mforsetti avatar
tz flag
คุณต้องการรวบรวมข้อมูลเกี่ยวกับการโหลดของคุณก่อนที่จะทำอะไร ติดตามและสร้างโปรไฟล์เว็บแอปของคุณก่อนตัดสินใจว่าจะทำการเพิ่มประสิทธิภาพใด
Score:-1
ธง in

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

หากคุณใช้แพ็คเกจ php จากที่เก็บบางแห่ง ให้มองหาโมดูล OPcache ใน php หากคุณกำลังคอมไพล์ ตรวจสอบให้แน่ใจว่าคุณเปิดใช้งาน OPcache ในขณะคอมไพล์ คุณไม่ควรบอกอะไรกับ nginx เกี่ยวกับ OPcache กำหนดขนาดแคชของคุณใน php.ini ระดับระบบ และคุณก็พร้อมที่จะร็อกแอนด์โรล!

cn flag
ทั้งสองไม่ตอบคำถามจริง ๆ แต่ขอสัมผัสกับสิ่งที่คุณพูด PHP OPCache ไม่ต้องการหน่วยความจำ เนื่องจากในเวอร์ชันล่าสุดแนะนำ OPcache แบบไฟล์ แคชคิวรี MySQL หากคุณอ้างถึงแคชในเซิร์ฟเวอร์ MySQL เอง จะเลิกใช้ใน MySQL เวอร์ชันล่าสุด ซึ่งเพียงพอที่จะพูดได้ว่าใน 8.0 ไม่สามารถใช้งานได้เลย สุดท้าย ฉันคิดว่า OP หมายถึงการถามเกี่ยวกับแคชแบบเต็มหน้า และทำใน NGINX (แคช fastcgi) *หรือ* วานิช ฯลฯ

โพสต์คำตอบ

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