ศูนย์คู่มือ Ruk-Com PaaS

คู่มือการพัฒนา Deploy และดูแล Application บน Platform

RUK-COM PAAS / PHP

คู่มือ 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/

Image 2: first Tomcat application*https://node.example.ruk-com.cloud/app2/

Image 3: second Tomcat applicationด้วย Apachemod_rewriteโมดูลคุณสามารถทำให้แอปทั้งสองของคุณพร้อมใช้งานบน Port เดียวโดยใช้เส้นทางที่ต่างกันเช่น:

  • http://node.example.ruk-com.cloud/application1/
  • http://node.example.ruk-com.cloud/application2/

การกำหนดค่านี้จะทำให้คุณสามารถจัดการ Restart และดีบัก Application แต่ละรายการของคุณแยกกันแต่ในขณะเดียวกันผู้ใช้ปลายทางจะมองเห็น Application เหล่านั้นเป็น Application เดียวมาดูวิธีตั้งค่านี้ด้วย Hosting PaaS:

  1. ในตอนเริ่มต้นคุณควรสร้าง Environment อย่างน้อยสามรายการ: Environment Apache ส่วนหน้าหนึ่งรายการและ Environment Tomcat แบ็กเอนด์สองรายการขึ้นไปที่ HostApplication Java ของคุณ

Image 4: Tomcat behind Apache topology2. เปิดตัวจัดการการกำหนดค่า 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>

Image 5: Apache httpd.conf*เขียนโปรแกรมใหม่อีกครั้งใช้สำหรับเปิดใช้งานความสามารถในการเขียนใหม่ *เขียนกฎใหม่และProxyPassReverseระบุเงื่อนไขและผลการเขียนใหม่ทั้ง 2 Application *เขียนใหม่ Logจะถูกเพิ่มเพื่อจัดเก็บบันทึกการเขียนใหม่ในตำแหน่งที่ระบุ

อย่าลืมที่จะบันทึกการเปลี่ยนแปลงที่เกิดขึ้นและRestartServer Apache ของคุณ:

  1. หากต้องการตรวจสอบผลลัพธ์ให้กดเปิดใน Browserถัดจาก Environment ส่วนหน้าของ Apache และเพิ่มเส้นทางที่คุณระบุไว้ในเขียนกฎใหม่บรรทัดต่อท้าย URL ใช้เป็นเงื่อนไขในการเปิด Application ที่จำเป็น

ในกรณีของเราเราเพิ่ม:

  • /Application1/Image 6: RewriteRule first application
  • /Application2/Image 7: RewriteRule second application

ดังที่คุณเห็นข้างต้นแต่ละ Application จะเปิดขึ้นด้วย Port เดียวและภายในเส้นทางที่ต่างกัน

การกำหนดค่านี้ยังมีประโยชน์ในการจัดเตรียมลิงก์คำอธิบายสำหรับ Application ของคุณเนื่องจากจะสะดวกกว่ามากสำหรับผู้ใช้ในการรับข้อมูลเกี่ยวกับเนื้อหาเพจจาก URL เอง

การประมวลผลเนื้อหาแบบคงที่

การกระจายกิจกรรมระหว่างทั้ง Tomcat และ Apache จะเพิ่มความรวดเร็วให้กับ Application ของคุณสามารถใช้ได้กับ Apachemod_proxyโมดูล:

Image 9: static content processing schemeดังที่คุณเห็นในรูปแบบข้างต้น Tomcat จะให้บริการ Application เองในขณะที่ Apache จะทำงานกับการส่งเนื้อหาแบบคงที่ทำตามขั้นตอนต่อไปนี้เพื่อทำให้ Application ของคุณให้บริการผู้ใช้มากขึ้นพร้อมกัน:

  1. ลองจินตนาการว่าคุณมี Environment สองรายการ: รายการแรกมี Server Tomcat และ Application ของคุณ Host อยู่และรายการที่สองมี Server Apache ที่ใช้สำหรับให้บริการเนื้อหาคงที่

Image 10: static content topology2. กดการกำหนดค่าถัดจาก Application Server Apache ของคุณแล้วไปที่var/www/webroot/ROOTโฟลเดอร์สร้างโฟลเดอร์พิเศษสำหรับเนื้อหาคงที่ของคุณ (ชื่อเช่นคงที่) และอัปโหลดไฟล์ที่จำเป็นที่นั่น

Image 11: create static content folder3. จากนั้นเปิด/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>

Image 12: static content settingsที่ProxyPass /คงที่!บรรทัดหมายความว่าเราไม่ได้ร้องขอพร็อกซีที่เริ่มต้นด้วย /stat คำหลัก

คำขออื่นๆทั้งหมดจะถูกส่งไปยัง Server Tomcat โดยที่แอปของคุณ Host อยู่ในเส้นทางที่ระบุพร็อกซีพาสและProxyPassReverseเส้น

  1. RestartServer Apache ของคุณ

  2. กดเปิดใน Browserถัดจาก Environment Apache เพื่อตรวจสอบผลลัพธ์หากทุกอย่างถูกต้องคุณจะเห็นว่าแอปของคุณพร็อกซีจาก Tomcat

Image 13: proxied Tomcat application6. โฟลเดอร์เนื้อหาคงที่ของคุณก็พร้อมใช้งานเช่นกัน - เพียงระบุเส้นทางไปยังโฟลเดอร์นั้นใน URL

Image 14: static content folderImage 15: static content imageดังนั้นทั้งแอป Tomcat และไฟล์สแตติกใน Apache จึงสามารถเข้าถึงได้ภายใน Port เดียว

โหลดบาลานซ์

คุณสามารถเพิ่ม Instance Tomcat ได้หลายรายการเพื่อให้ Environment ของคุณจัดการโหลดได้มากขึ้นและรับความสามารถในการ Failover ในกรณีนี้ Server Apache ส่วนหน้าจะทำหน้าที่เป็นตัวกระจายโหลดระหว่าง Server Tomcat ทั้งหมด

Image 17: Apache load balancing schemeเมื่อใช้ขั้นตอนต่อไปนี้คุณสามารถกำหนดค่า Server Apache ของคุณเพื่อปรับสมดุลโหลดใน Application Java ของคุณภายในได้โมดูล mod_rewrite.

  1. เราจะใช้ Environment ที่แยกจากกันสาม Environment: สองแบ็กเอนด์TomcatEnvironment ที่มีการ Deploy Application Java ของคุณ (โปรดทราบว่าการใช้บริบทที่คล้ายกันสำหรับทั้งสอง Application ที่ Deploy ในทั้งสอง Environment นั้นเป็นข้อกำหนดบังคับ) และหนึ่งส่วนหน้าApacheEnvironment.

Image 18: load balancing topology2. กดการกำหนดค่าถัดจาก Node Apache ของคุณแล้วไปที่/etc/httpd/conf.dโฟลเดอร์ในตัวจัดการการกำหนดค่าที่เปิดอยู่สร้างใหม่Server_รายการไฟล์ที่นั่น

  1. เพิ่ม Host ของ Application ของคุณที่ใช้งานกับไฟล์ที่สร้างขึ้นใหม่นี้ดังที่แสดงด้านล่าง:

Server {env1_name}.{hoster_domain}|{env2_name}.{hoster_domain}

Image 19: hosts list for load balancing4. จากนั้นเปิด/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>

Image 20: load balancing settings*เขียนโปรแกรมใหม่อีกครั้งใช้สำหรับเปิดใช้งานความสามารถในการเขียนใหม่ *เขียนใหม่ Mapกำหนดเส้นทางสู่เจ้าภาพตามที่ระบุไว้ในServer_รายการไฟล์ที่สร้างไว้ก่อนหน้านี้ *เขียนกฎใหม่กำหนดเงื่อนไขการทำโหลดบาลานซ์ *เขียนใหม่ Logจะถูกเพิ่มเพื่อจัดเก็บบันทึกการเขียนใหม่ในตำแหน่งที่ระบุ

  1. กดRestartปุ่มสำหรับ Node Apache ของคุณ

  2. คลิกเปิดใน Browserข้าง Application Apache เพื่อดูผลลัพธ์ Application Tomcat ตัวใดตัวหนึ่งจะเปิดขึ้น Refresh หน้า (บางทีคุณอาจต้องทำหลายครั้ง) เพื่อดูแอปที่สองที่เปิดขึ้นซึ่งเป็นผลมาจากการกระจายโหลด

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