วิธีตั้งค่า Reverse Proxy สำหรับ WordPress
เผยแพร่แล้ว: 2023-01-16ในฐานะผู้ดูแลระบบ WordPress คุณอาจพบว่าตัวเองอยู่ในสถานการณ์ที่ต้องตั้งค่าเซิร์ฟเวอร์พร็อกซีย้อนกลับ โชคดีที่การตั้งค่า reverse proxy server ทำได้ค่อนข้างง่าย และมีชุดซอฟต์แวร์ต่างๆ มากมายที่คุณสามารถใช้ได้ บทความนี้แสดงภาพรวมโดยย่อของการตั้งค่าพร็อกซีเซิร์ฟเวอร์ย้อนกลับสำหรับไซต์ WordPress ของคุณโดยใช้ NGINX
Reverse Proxy Servers คืออะไรและเหตุใดจึงใช้สำหรับ WordPress
พร็อกซีเซิร์ฟเวอร์แบบย้อนกลับดึงทรัพยากรจากเซิร์ฟเวอร์อย่างน้อยหนึ่งเครื่องในนามของลูกค้า ทรัพยากรเหล่านี้จะถูกส่งไปยังไคลเอ็นต์โดยไม่สามารถบอกได้ว่าทรัพยากรเหล่านี้มาจากพร็อกซีเซิร์ฟเวอร์
พร็อกซีย้อนกลับมีประโยชน์เพราะสามารถซ่อนการมีอยู่และคุณลักษณะของเซิร์ฟเวอร์ต้นทางได้ ตัวอย่างเช่น พร็อกซีย้อนกลับสามารถให้ความปลอดภัย ประสิทธิภาพ และความน่าเชื่อถือเพิ่มเติมอีกชั้นหนึ่งสำหรับเว็บแอปพลิเคชันโดยป้องกันพวกเขาจากคำขอที่เป็นอันตรายหรือการเข้าชมจำนวนมาก
หากคุณต้องการเรียนรู้เพิ่มเติม มีแหล่งข้อมูลออนไลน์มากมายที่จะช่วยให้คุณเรียนรู้เพิ่มเติมเกี่ยวกับเซิร์ฟเวอร์พร็อกซีย้อนกลับ มีเหตุผลทั่วไปหลายประการที่อาจจำเป็นต้องตั้งค่าเซิร์ฟเวอร์พร็อกซีย้อนกลับ:
- ปรับปรุงประสิทธิภาพของไซต์ด้วยการแคชเนื้อหา
กรณีการใช้งานทั่วไปสำหรับ reverse proxy คือการแคชเนื้อหา WordPress ที่ร้องขอบ่อย ตัวอย่างเช่น หากกลุ่มของเว็บเซิร์ฟเวอร์ให้บริการเว็บไซต์หนึ่งๆ พร็อกซีย้อนกลับสามารถแคชเนื้อหาคงที่ของเว็บไซต์ (เช่น หน้า HTML รูปภาพ และไฟล์ CSS) บนเซิร์ฟเวอร์เครื่องเดียว สิ่งนี้สามารถปรับปรุงประสิทธิภาพของเว็บไซต์ WordPress เนื่องจากไม่จำเป็นต้องดึงเนื้อหาจากเว็บเซิร์ฟเวอร์ทุกครั้งที่ผู้ใช้ร้องขอหน้า
- ลดภาระงานที่ใช้ CPU มาก เช่น การปรับขนาดภาพ
พร็อกซีเซิร์ฟเวอร์แบบย้อนกลับสามารถออฟโหลดงานที่ต้องใช้ CPU มาก เช่น การปรับขนาดรูปภาพจากเซิร์ฟเวอร์ WordPress โดยส่งต่อคำขอสำหรับงานเหล่านี้ไปยังเซิร์ฟเวอร์ที่มีความพร้อมในการจัดการที่ดีกว่า สิ่งนี้สามารถช่วยปรับปรุงประสิทธิภาพของไซต์ WordPress โดยเพิ่มทรัพยากรบนเซิร์ฟเวอร์ WordPress สำหรับงานอื่น ๆ
- ปรับปรุงการรักษาความปลอดภัยโดยการกรองคำขอและบล็อกทราฟฟิกที่เป็นอันตราย
พร็อกซีเซิร์ฟเวอร์แบบย้อนกลับสามารถปรับปรุงความปลอดภัยของ WordPress ได้โดยการกรองคำขอและบล็อกทราฟฟิกที่เป็นอันตราย โดยการกรองคำขอ พร็อกซีเซิร์ฟเวอร์ย้อนกลับสามารถบล็อกการเข้าถึงที่อยู่ IP หรือภูมิภาคเฉพาะที่ทราบว่าเกี่ยวข้องกับกิจกรรมที่เป็นอันตราย โดยการบล็อกการรับส่งข้อมูลที่เป็นอันตราย พร็อกซีเซิร์ฟเวอร์ย้อนกลับสามารถช่วยลดผลกระทบของการโจมตี DDoS และการโจมตีอื่น ๆ ที่กำหนดเป้าหมายเว็บไซต์ WordPress
- ทำให้ WordPress สามารถเข้าถึงได้จากโดเมนหรือโดเมนย่อยอื่น
ตามที่กล่าวไว้ข้างต้น พร็อกซีเซิร์ฟเวอร์ย้อนกลับดึงทรัพยากรจากเซิร์ฟเวอร์หนึ่งเครื่องขึ้นไปในนามของลูกค้า ทรัพยากรเหล่านี้สามารถเป็นไฟล์ประเภทใดก็ได้ แต่โดยทั่วไปจะเป็นเว็บเพจ จากนั้นพร็อกซีเซิร์ฟเวอร์ย้อนกลับจะจัดเตรียมทรัพยากรเหล่านี้ให้กับลูกค้าและดูเหมือนว่าทรัพยากรเหล่านี้มาจากเซิร์ฟเวอร์เอง สิ่งนี้ทำได้โดยการกำหนดค่าเซิร์ฟเวอร์พร็อกซีย้อนกลับเพื่อส่งต่อคำขอสำหรับเนื้อหา WordPress ไปยังเซิร์ฟเวอร์ WordPress ในขณะที่ยังคงให้ภาพลวงตาแก่ลูกค้าว่าพวกเขากำลังเข้าถึงเนื้อหาโดยตรงจากพร็อกซีเซิร์ฟเวอร์ในเครื่อง
เซิร์ฟเวอร์พร็อกซีย้อนกลับยอดนิยม
จากข้อมูลของ W3Techs เว็บไซต์ประมาณ 83% ไม่ได้ใช้บริการพร็อกซีย้อนกลับ ส่วนที่เหลืออีก 17% ที่ทำเช่นนั้นส่วนใหญ่เป็น CDN เนื่องจากพร็อกซีแบบย้อนกลับมักปกปิดการมีอยู่ของตนเพื่อวัตถุประสงค์ด้านความปลอดภัย ทำให้ยากสำหรับบริการตรวจสอบเว็บไซต์ เช่น W3Techs ในการพิจารณาว่าบริการใดที่ใช้กันอย่างแพร่หลายมากที่สุด ต่อไปนี้คือโซลูชันพร็อกซีย้อนกลับที่ใช้บ่อยที่สุดสามรายการ:
- NGINX
NGINX เป็นเว็บเซิร์ฟเวอร์ที่มีข้อดีหลายประการ เช่น ประสิทธิภาพที่เพิ่มขึ้น ความปลอดภัย ความเชื่อถือได้ และความสามารถในการปรับขนาด คุณสามารถดาวน์โหลดได้ฟรีหรือใช้ NGINX Plus รุ่นเชิงพาณิชย์สำหรับเว็บไซต์องค์กรที่มีความเป็นไปได้ในการตั้งค่าตาม API ธุรกิจขนาดใหญ่จำนวนไม่น้อยใช้ NGINX – Cloudflare, Netflix, MaxCDN และอื่น ๆ การกำหนดค่า NGINX เป็น reverse proxy เป็นเรื่องง่าย และคุณสามารถปรับแต่งตามความต้องการของคุณได้
- วานิช
วานิชเป็นซอฟต์แวร์โอเพ่นซอร์สประเภทหนึ่งที่สามารถปรับปรุงประสิทธิภาพของเว็บไซต์ที่มีการเข้าชมสูง ทำงานเป็นพร็อกซีย้อนกลับ โหลดบาลานเซอร์ ไฟร์วอลล์ของเว็บแอปพลิเคชัน และเซิร์ฟเวอร์ตรวจสอบสิทธิ์ที่ขอบ และรองรับ Edge Side included (ESI) เพื่อการโหลดหน้าเว็บที่เร็วขึ้น คุณสามารถใช้เป็นส่วนหน้าสำหรับเว็บเซิร์ฟเวอร์ NGINX หรือ Apache หรือตั้งค่าเป็นพร็อกซีย้อนกลับสำหรับ WordPress
- เซิร์ฟเวอร์การรับส่งข้อมูล Apache
Apache Traffic Server ซึ่งเป็นตัวเลือกโอเพ่นซอร์สที่มีชื่อเสียงในด้านประสิทธิภาพและความจุ ได้รับการพัฒนาขึ้นเป็นครั้งแรกโดย Yahoo! เป็นบริการเชิงพาณิชย์ก่อนที่จะมอบให้กับมูลนิธิอาปาเช่ ปัจจุบันเครือข่ายเนื้อหาและ CDN หลายแห่งใช้เครือข่ายนี้ รวมถึง Akami, Apple, Comcast, LinkedIn และ Yahoo เพื่อเพิ่มประสิทธิภาพระบบของพวกเขา นอกจากนี้ยังสามารถใช้ Apache HTTP Server (Apache httpd) เพื่อตั้งค่า reverse proxy บนเว็บเซิร์ฟเวอร์ของคุณ ซึ่งช่วยให้สามารถจัดหาเนื้อหาทั้งแบบสแตติกและไดนามิกให้กับผู้ใช้ในขณะที่ยังคงใช้งานเป็นเว็บเซิร์ฟเวอร์ปกติ
- Hพร็อกซี
HAProxy เป็น reverse proxy และ load balancer แบบโอเพ่นซอร์สฟรีที่ออกแบบมาเพื่อทำงานร่วมกับสถาปัตยกรรมเว็บเซิร์ฟเวอร์ที่มีอยู่มากมาย เช่น ระบบ Linux และแพลตฟอร์มบนคลาวด์ ใช้โมเดล I/O ที่ขับเคลื่อนด้วยเหตุการณ์ และสามารถกระจายคำขอผ่านกระบวนการต่างๆ ของผู้ปฏิบัติงาน ซึ่งคล้ายกับ NGINX HAProxy มีชื่อเสียงในด้านความสามารถในการรองรับปริมาณทราฟฟิกจำนวนมากแม้ในช่วงที่มีการโหลดสูงสุด มีการใช้งานโดยเว็บไซต์ที่ใหญ่ที่สุดในโลก เช่น Airbnb, Reddit และ Instagram
Reverse Proxy Server ใช้กรณีสำหรับเว็บไซต์ WordPress
แม้ว่าคุณจะสามารถใช้พร็อกซีย้อนกลับอื่นๆ ได้ แต่ NGINX เป็นตัวเลือกที่ได้รับความนิยมมากที่สุด ต่อไปนี้เป็นกรณีการใช้งานหลักสามกรณีสำหรับการตั้งค่าพร็อกซีย้อนกลับสำหรับไซต์ WordPress:
- เว็บไซต์หลักและพร็อกซีบนเซิร์ฟเวอร์เดียว
หากคุณมีทั้งไซต์หลักและพร็อกซีที่โฮสต์บนเว็บเซิร์ฟเวอร์เดียวกัน คุณสามารถตั้งค่าพร็อกซีย้อนกลับเพื่อให้ไซต์พร็อกซีโหลดจากไซต์หลักได้ คุณสามารถทำได้โดยกำหนดค่ากฎพร็อกซีย้อนกลับที่เกี่ยวข้องทั้งหมดบนไซต์หลักและตั้งค่าไซต์พร็อกซีให้โหลดผ่านพร็อกซี นอกจากนี้ หากใช้ใบรับรอง SSL ต้องมีกฎเฉพาะใน wp-config.php เพื่อป้องกันการวนซ้ำการเปลี่ยนทิศทาง โปรดทราบว่าเป็นไปไม่ได้ที่จะสร้าง URL ที่มีไดเร็กทอรีย่อยเดียวกันกับที่ใช้ในการโหลดไซต์
- โฮสต์เฉพาะไซต์พร็อกซีบนเซิร์ฟเวอร์ของคุณ
หากต้องการสร้าง reverse proxy คุณต้องติดต่อผู้ดูแลระบบเซิร์ฟเวอร์ของเว็บไซต์หลักและกำหนดค่ากฎบนเซิร์ฟเวอร์สองเครื่อง ควรเพิ่มชื่อโดเมนที่ชี้ไปยังพร็อกซีย้อนกลับ โดยปกติจะทำผ่านโดเมนย่อย (เช่น blog.your_domain.com) ที่เชื่อมโยงกับไซต์พร็อกซี (เช่น your_domain.com/blog) โปรดทราบว่าคุณจะต้องมีที่อยู่ IP จากเซิร์ฟเวอร์เพื่อดำเนินการตั้งค่าให้เสร็จสมบูรณ์
- เว็บไซต์หลักโฮสต์บนเซิร์ฟเวอร์ของคุณ
หากคุณเข้าถึงได้เฉพาะเว็บไซต์หลักและเซิร์ฟเวอร์โฮสต์ของเว็บไซต์นั้น คุณควรตั้งค่าพร็อกซีย้อนกลับและปรับการตั้งค่าเพื่อให้เพจถูกดึงมาจากโฮสต์ภายนอก จะเป็นความรับผิดชอบของผู้ดูแลระบบของเซิร์ฟเวอร์สำรองในการติดตั้งและกำหนดค่าไซต์พร็อกซีที่จะเข้าถึงผ่านพร็อกซีย้อนกลับ
ขั้นตอนในการตั้งค่า Reverse Proxy สำหรับ WordPress
การตั้งค่า reverse proxy สำหรับ WordPress เป็นวิธีที่ยอดเยี่ยมในการปรับปรุงประสิทธิภาพเว็บไซต์ของคุณ นอกจากนี้ยังสามารถช่วยปกป้องเว็บเซิร์ฟเวอร์ของคุณจากคำขอที่เป็นอันตรายและช่วยปรับปรุงประสบการณ์ของผู้ใช้ ด้านล่างนี้เป็นขั้นตอนที่คุณต้องทำเพื่อตั้งค่าพร็อกซีย้อนกลับสำหรับ WordPress
- ติดตั้งพร็อกซีเซิร์ฟเวอร์แบบย้อนกลับ
ขั้นตอนแรกคือการติดตั้งพร็อกซีเซิร์ฟเวอร์แบบย้อนกลับ ขอแนะนำให้ใช้เว็บเซิร์ฟเวอร์ NGINX ซึ่งเป็นโอเพ่นซอร์สฟรี เว็บเซิร์ฟเวอร์ยอดนิยมอื่นๆ เช่น Apache ก็สามารถใช้ได้เช่นกัน แต่เราจะถือว่าคุณกำลังใช้ NGINX สำหรับบทช่วยสอนนี้ สมมติว่าคุณต้องการใช้ NGINX reverse proxy (192.xx10) ร่วมกับเว็บเซิร์ฟเวอร์ Apache (192.xx20) ซึ่งเปิดใช้งานแล้ว
การติดตั้ง NGINX บนเซิร์ฟเวอร์ Ubuntu เป็นเรื่องของการเรียกใช้คำสั่งเดียว:
sudo apt-get อัปเดต
sudo apt-get ติดตั้ง nginx
เมื่อติดตั้ง NGINX แล้ว ให้ใช้คำสั่งนี้เพื่อปิดใช้งานโฮสต์เสมือน:
sudo ยกเลิกการเชื่อมโยง /etc/nginx/sites-enabled/default
ถึงเวลาสร้าง reverse proxy แล้ว คุณสามารถทำได้โดยสร้างไฟล์ชื่อ reverse-proxy.conf ในไดเร็กทอรี etc/nginx/sites-available ก่อนอื่น ไปที่ไดเร็กทอรี:
cd etc/nginx/sites-available
สร้างไฟล์ผ่านโปรแกรมแก้ไข vi:
vi ย้อนกลับ-proxy.conf
เพิ่มบรรทัดต่อไปนี้ในไฟล์:
เซิร์ฟเวอร์ {
ฟัง 80;
ที่ตั้ง / {
proxy_pass http://192.xx20;
}
}
อย่างที่เราเห็น proxy pass อนุญาตให้ส่งคำขอที่ผ่าน reverse proxy ไปยัง 192.xx20:80 ซึ่งเป็นรีโมตซ็อกเก็ตของเซิร์ฟเวอร์หลัก กล่าวอีกนัยหนึ่งเซิร์ฟเวอร์ทั้งสองแบ่งปันเนื้อหา เมื่อเสร็จแล้ว ให้บันทึกไฟล์และออกจากโปรแกรมแก้ไข หากต้องการส่งต่อข้อมูลไปยังเซิร์ฟเวอร์อื่น ให้ใช้ ngx_http_proxy_module ในเทอร์มินัล สุดท้าย คุณต้องเปิดใช้งานคำสั่งโดยลิงก์ไปยัง /sites-enabled/ ด้วยคำสั่งนี้:
sudo ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf
สิ่งที่ต้องทำคือทดสอบ reverse proxy คุณต้องเรียกใช้การทดสอบการกำหนดค่าและรีสตาร์ท NGINX เพื่อยืนยันประสิทธิภาพ ใช้คำสั่งด้านล่างเพื่อตรวจสอบว่า NGINX ทำงานหรือไม่:
บริการ nginx configtest
บริการ nginx เริ่มต้นใหม่
ในกรณีที่การทดสอบล้มเหลว แสดงว่าอาจตั้งค่า Apache ไม่ถูกต้อง
ข้อจำกัดของเซิร์ฟเวอร์พร็อกซีย้อนกลับ
พร็อกซีย้อนกลับสามารถนำเสนอความเสี่ยงด้านความปลอดภัยที่สำคัญเนื่องจากสามารถสังเกตและแก้ไขการรับส่งข้อมูลทั้งหมดที่จะผ่านได้ หากทราฟฟิก HTTPS ถูกส่งผ่าน reverse proxy ข้อมูลจะต้องถูกถอดรหัสและเข้ารหัสใหม่ ซึ่งต้องใช้คีย์ส่วนตัวของใบรับรอง SSL/TLS หากแฮ็กเกอร์เข้าถึงพร็อกซีย้อนกลับได้ พวกเขาก็มีโอกาสบันทึกรหัสผ่านและแทรกรหัสที่เป็นอันตรายลงในเว็บไซต์ได้
พร็อกซีย้อนกลับสามารถสร้างจุดล้มเหลวเพียงจุดเดียว หากคุณหรือผู้ใช้ของคุณไม่สามารถเข้าถึงเซิร์ฟเวอร์หลักได้โดยตรง ตัวอย่างเช่น หาก reverse proxy หนึ่งรายการให้บริการหลายโดเมน การหยุดชะงักใดๆ จะทำให้ไซต์เหล่านั้นทั้งหมดไม่สามารถเข้าถึงได้ หากมีการใช้พร็อกซีย้อนกลับของบุคคลที่สาม อย่าลืมว่าคุณกำลังแบ่งปันรายละเอียดที่สำคัญเกี่ยวกับไซต์กับพวกเขา
บทสรุป
การตั้งค่าพร็อกซีย้อนกลับสำหรับ WordPress จะเป็นประโยชน์ต่อความปลอดภัยและประสิทธิภาพของเว็บไซต์ ขั้นตอนในการตั้งค่า reverse proxy สำหรับ WordPress จะแตกต่างกันไปขึ้นอยู่กับเซิร์ฟเวอร์และการกำหนดค่า โดยทั่วไปจะรวมถึงการกำหนดค่าพร็อกซีเซิร์ฟเวอร์ การตั้งค่าเว็บเซิร์ฟเวอร์ส่วนหลัง และการตั้งค่าไซต์ WordPress แม้ว่าการตั้งค่า reverse proxy server จะเป็นประโยชน์ แต่ก็มีข้อจำกัด