คู่มือ Apache as Frontend สำหรับ PHP
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู Parameter และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
Tomcatเป็น Server ที่เชื่อถือได้และรวดเร็วซึ่งสามารถทำงานกับข้อมูลจำนวนมากได้นั่นคือเหตุผลที่ทำให้สามารถแข่งขันด้านประสิทธิภาพกับเว็บ Server ดั้งเดิมได้การวาง HTTP ที่ปลอดภัยรวดเร็วและยืดหยุ่นApacheServer ที่อยู่ด้านหน้า Tomcat มอบฟังก์ชันการทำงานเพิ่มเติมบางอย่างให้กับคุณเช่นความพร้อมใช้งานสูงผ่านการทำโหลดบาลานซ์ระหว่าง Server Tomcat หลายเครื่องการประมวลผลและการส่งมอบเนื้อหาคงที่ที่รวดเร็วปัญหาด้านความปลอดภัยเพิ่มเติมที่มีใน Apache ฟังก์ชันพิเศษผ่านโมดูล Apache เป็นต้น
ในลักษณะที่ทำให้ Tomcat อยู่เบื้องหลัง Apache นั้นถูกใช้อย่างกว้างขวางเพื่อปรับปรุงประสิทธิภาพของ Environment ที่มีการโหลดสูง
ในบทช่วยสอนนี้เราจะตรวจสอบวิธีเชื่อมต่อ Server Apache และ Tomcat โดยใช้mod_proxyหรือmod_rewriteโมดูลด้วยการกำหนดค่าดังกล่าว Apache จะส่งคำขอไปยัง Application Server Tomcat ของคุณและถ่ายทอดการตอบกลับกลับไปยัง Client
ทำตามคำแนะนำถัดไปเพื่อค้นหาสามกรณีที่ได้รับความนิยมมากที่สุดในการใช้การตั้งค่าดังกล่าว
การเขียนลิงค์ใหม่
ลองพิจารณาสถานการณ์ที่คุณมี Application Java อย่างน้อยสองตัวที่ Host บน Server แอปแยกกันและ Port ที่ต่างกันเป็นตัวอย่างง่ายๆเราจะใช้สอง Application ที่แสดงที่อยู่ IP ของ Server
- https://node.example.ruk-com.cloud/app1/
*https://node.example.ruk-com.cloud/app2/
ด้วย Apachemod_rewriteโมดูลคุณสามารถทำให้แอปทั้งสองของคุณพร้อมใช้งานบน Port เดียวโดยใช้เส้นทางที่ต่างกันเช่น:
- http://node.example.ruk-com.cloud/application1/
- http://node.example.ruk-com.cloud/application2/
การกำหนดค่านี้จะทำให้คุณสามารถจัดการ Restart และดีบัก Application แต่ละรายการของคุณแยกกันแต่ในขณะเดียวกันผู้ใช้ปลายทางจะมองเห็น Application เหล่านั้นเป็น Application เดียวมาดูวิธีตั้งค่านี้ด้วย Hosting PaaS:
- ในตอนเริ่มต้นคุณควรสร้าง Environment อย่างน้อยสามรายการ: Environment Apache ส่วนหน้าหนึ่งรายการและ Environment Tomcat แบ็กเอนด์สองรายการขึ้นไปที่ HostApplication Java ของคุณ
2. เปิดตัวจัดการการกำหนดค่า Apache (คลิกการกำหนดค่าข้างๆ)
ในแท็บที่ปรากฏขึ้นให้เปิดไฟล์/etc/httpd/conf/httpd.confไฟล์และระบุการกำหนดค่าต่อไปนี้สำหรับ< Host เสมือน >ส่วนไฟล์.
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/webroot/ROOT
ServerName node.example.ruk-com.cloud
ServerAlias
RewriteEngine On
RewriteRule ^/application1/(.*) http://node.example.ruk-com.cloud/app1/ [P]
ProxyPassReverse /application1/ http://node.example.ruk-com.cloud/app1/
RewriteRule ^/application2/(.*) http://node.example.ruk-com.cloud/app2/ [P]
ProxyPassReverse /application2/ http://node.example.ruk-com.cloud/app2/
RewriteLog "/var/log/httpd/rewrite.log"
ErrorLog logs/node.example.ruk-com.cloud-error_log
CustomLog logs/node.example.ruk-com.cloud-access_log common
</VirtualHost>
*เขียนโปรแกรมใหม่อีกครั้งใช้สำหรับเปิดใช้งานความสามารถในการเขียนใหม่ *เขียนกฎใหม่และProxyPassReverseระบุเงื่อนไขและผลการเขียนใหม่ทั้ง 2 Application *เขียนใหม่ Logจะถูกเพิ่มเพื่อจัดเก็บบันทึกการเขียนใหม่ในตำแหน่งที่ระบุ
อย่าลืมที่จะบันทึกการเปลี่ยนแปลงที่เกิดขึ้นและRestartServer Apache ของคุณ:
- หากต้องการตรวจสอบผลลัพธ์ให้กดเปิดใน Browserถัดจาก Environment ส่วนหน้าของ Apache และเพิ่มเส้นทางที่คุณระบุไว้ในเขียนกฎใหม่บรรทัดต่อท้าย URL ใช้เป็นเงื่อนไขในการเปิด Application ที่จำเป็น
ในกรณีของเราเราเพิ่ม:
ดังที่คุณเห็นข้างต้นแต่ละ Application จะเปิดขึ้นด้วย Port เดียวและภายในเส้นทางที่ต่างกัน
การกำหนดค่านี้ยังมีประโยชน์ในการจัดเตรียมลิงก์คำอธิบายสำหรับ Application ของคุณเนื่องจากจะสะดวกกว่ามากสำหรับผู้ใช้ในการรับข้อมูลเกี่ยวกับเนื้อหาเพจจาก URL เอง
การประมวลผลเนื้อหาแบบคงที่
การกระจายกิจกรรมระหว่างทั้ง Tomcat และ Apache จะเพิ่มความรวดเร็วให้กับ Application ของคุณสามารถใช้ได้กับ Apachemod_proxyโมดูล:
ดังที่คุณเห็นในรูปแบบข้างต้น Tomcat จะให้บริการ Application เองในขณะที่ Apache จะทำงานกับการส่งเนื้อหาแบบคงที่ทำตามขั้นตอนต่อไปนี้เพื่อทำให้ Application ของคุณให้บริการผู้ใช้มากขึ้นพร้อมกัน:
- ลองจินตนาการว่าคุณมี Environment สองรายการ: รายการแรกมี Server Tomcat และ Application ของคุณ Host อยู่และรายการที่สองมี Server Apache ที่ใช้สำหรับให้บริการเนื้อหาคงที่
2. กดการกำหนดค่าถัดจาก Application Server Apache ของคุณแล้วไปที่var/www/webroot/ROOTโฟลเดอร์สร้างโฟลเดอร์พิเศษสำหรับเนื้อหาคงที่ของคุณ (ชื่อเช่นคงที่) และอัปโหลดไฟล์ที่จำเป็นที่นั่น
3. จากนั้นเปิด/etc/httpd/conf/httpd.confไฟล์.
ดำเนินการกำหนดค่าที่จำเป็นใน< Host เสมือน >บล็อกตามที่อธิบายไว้ด้านล่าง:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/webroot/ROOT
ServerName node.example.ruk-com.cloud
ServerAlias *
ProxyPass /static !
ProxyPass / http://node.example.ruk-com.cloud/app1/
ProxyPassReverse / http://node.example.ruk-com.cloud/app1/
ErrorLog logs/node.example.ruk-com.cloud-error_log
CustomLog logs/node.example.ruk-com.cloud-access_log common
</VirtualHost>
ที่ProxyPass /คงที่!บรรทัดหมายความว่าเราไม่ได้ร้องขอพร็อกซีที่เริ่มต้นด้วย /stat คำหลัก
คำขออื่นๆทั้งหมดจะถูกส่งไปยัง Server Tomcat โดยที่แอปของคุณ Host อยู่ในเส้นทางที่ระบุพร็อกซีพาสและProxyPassReverseเส้น
-
RestartServer Apache ของคุณ
-
กดเปิดใน Browserถัดจาก Environment Apache เพื่อตรวจสอบผลลัพธ์หากทุกอย่างถูกต้องคุณจะเห็นว่าแอปของคุณพร็อกซีจาก Tomcat
6. โฟลเดอร์เนื้อหาคงที่ของคุณก็พร้อมใช้งานเช่นกัน - เพียงระบุเส้นทางไปยังโฟลเดอร์นั้นใน URL

ดังนั้นทั้งแอป Tomcat และไฟล์สแตติกใน Apache จึงสามารถเข้าถึงได้ภายใน Port เดียว
โหลดบาลานซ์
คุณสามารถเพิ่ม Instance Tomcat ได้หลายรายการเพื่อให้ Environment ของคุณจัดการโหลดได้มากขึ้นและรับความสามารถในการ Failover ในกรณีนี้ Server Apache ส่วนหน้าจะทำหน้าที่เป็นตัวกระจายโหลดระหว่าง Server Tomcat ทั้งหมด
เมื่อใช้ขั้นตอนต่อไปนี้คุณสามารถกำหนดค่า Server Apache ของคุณเพื่อปรับสมดุลโหลดใน Application Java ของคุณภายในได้โมดูล mod_rewrite.
- เราจะใช้ Environment ที่แยกจากกันสาม Environment: สองแบ็กเอนด์TomcatEnvironment ที่มีการ Deploy Application Java ของคุณ (โปรดทราบว่าการใช้บริบทที่คล้ายกันสำหรับทั้งสอง Application ที่ Deploy ในทั้งสอง Environment นั้นเป็นข้อกำหนดบังคับ) และหนึ่งส่วนหน้าApacheEnvironment.
2. กดการกำหนดค่าถัดจาก Node Apache ของคุณแล้วไปที่/etc/httpd/conf.dโฟลเดอร์ในตัวจัดการการกำหนดค่าที่เปิดอยู่สร้างใหม่Server_รายการไฟล์ที่นั่น
- เพิ่ม Host ของ Application ของคุณที่ใช้งานกับไฟล์ที่สร้างขึ้นใหม่นี้ดังที่แสดงด้านล่าง:
Server {env1_name}.{hoster_domain}|{env2_name}.{hoster_domain}
4. จากนั้นเปิด/etc/httpd/conf/httpd.confไฟล์และระบุการกำหนดค่าต่อไปนี้:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/webroot/ROOT
ServerName node.example.ruk-com.cloud
ServerAlias *
RewriteEngine On
RewriteMap lb rnd:/etc/httpd/conf.d/servers_list
RewriteRule ^/(.*) http://${lb:servers}/app1/$1 [P,L]
RewriteLog "/var/log/httpd/rewrite.log"
ErrorLog logs/node.example.ruk-com.cloud-error_log
CustomLog logs/node.example.ruk-com.cloud-access_log common
</VirtualHost>
*เขียนโปรแกรมใหม่อีกครั้งใช้สำหรับเปิดใช้งานความสามารถในการเขียนใหม่ *เขียนใหม่ Mapกำหนดเส้นทางสู่เจ้าภาพตามที่ระบุไว้ในServer_รายการไฟล์ที่สร้างไว้ก่อนหน้านี้ *เขียนกฎใหม่กำหนดเงื่อนไขการทำโหลดบาลานซ์ *เขียนใหม่ Logจะถูกเพิ่มเพื่อจัดเก็บบันทึกการเขียนใหม่ในตำแหน่งที่ระบุ
-
กดRestartปุ่มสำหรับ Node Apache ของคุณ
-
คลิกเปิดใน Browserข้าง Application Apache เพื่อดูผลลัพธ์ Application Tomcat ตัวใดตัวหนึ่งจะเปิดขึ้น Refresh หน้า (บางทีคุณอาจต้องทำหลายครั้ง) เพื่อดูแอปที่สองที่เปิดขึ้นซึ่งเป็นผลมาจากการกระจายโหลด

เพลิดเพลินไปกับคุณประโยชน์ของการเชื่อมต่อระหว่าง Tomcat และ Apache โดยทำให้ Application ของคุณมีประสิทธิภาพสูงยืดหยุ่นและมีเสถียรภาพมากยิ่งขึ้น


