Environment variables ใช้เพื่อเก็บค่าของพารามิเตอร์ที่ใช้บ่อยซึ่งจัดเตรียมให้กับโปรแกรมซอฟต์แวร์ที่ใช้เวลาในการทำงาน กานใช้ placeholder ดังกล่าวทำให้แอปพลิเคชันของคุณสะดวกและยืดหยุ่นมากขึ้น
การใช้ตัวแปรที่พบบ่อยที่สุดคือการปรับเปลี่ยนค่าเฉพาะอย่างรวดเร็วที่ใช้หลายครั้งใน code แอปพลิเคชันของคุณ หากคุณต้องการสร้างตัวแปรใน environment เองสามารถทำตามคำแนะนำจากลิงก์ที่แนบไว้
อีกกรณีสำหรับตัวแปรคือการ config แอปพลิเคชันผ่านเซตของค่าที่ได้กำหนดไว้ล่วงหน้าแล้ว (เปิด/ปิด ฟีเจอร์, เปลี่ยนแปลงการทำงานและอื่นๆ) Ruk-Com Cloud PaaS ช่วยเพิ่มเติม software stacks ส่วนใหญ่ที่ผ่านการรับรองแล้วกับตัวแปรเริ่มต้นจำนวนหนึ่งโดยนักพัฒนาสามารถนำไปใช้เพื่อช่วยในการโฮสต์แอปพลิเคชัน
Default Environment Variables
รายการตัวแปรทั้งหมดที่ใช้ใน Ruk-Com Cloud PaaS
ชื่อตัวแปร | การแก้ไข* | สแต็ก | คำอธิบาย |
{SOFTWARE}_VERSION | – | All | เวอร์ชันของซอฟต์แวร์ที่ระบุ (stack, engine, template, module) และอื่นๆ |
ADMIN_USER | – | GlassFish (Payara), WildFly, Couchbase, LiteSpeed Web Server, LiteSpeed ADC, LLSMP | การเข้าสู่ระบบของ admin สำหรับคอนโซลการดูแลระบบ |
ADMINPANEL_ENABLED (PHPMYADMIN_ENABLED) | + | Databases, LLSMP, LEMP | ค่า “true” และ “1” อนุญาตให้ใช้ admin panel ในขณะที่ค่าอื่นๆปิดอยู่ซึ่งจำเป็นต้องรีสตาร์ทเพื่อใช้การเปลี่ยนแปลง ค่าในวงเล็บจะถูกเลิกใช้งาน แต่ยังคงใช้ได้กับ MySQL และ MariaDB databases |
APP_FILE | + | Node.js | ไฟล์แอปพลิเคชัน Node.js หลักที่จะเริ่มต้นโปรแกรม |
AUTO_OLD_HEAP | + | Node.js | Turns on/off (true/false) การกำหนดค่า Ruk-Com Cloud memory โดยอัตโนมัติ – ตั้งค่าขนาดสูงสุดของ heap เก่าตามจำนวน memory บนคอนเทนเนอร์เก่า |
CACHE_MEM_LIMIT | + | PHP | กำหนดส่วนของ RAM ซึ่งควรจองไว้สำหรับ Redis cache server ที่สร้างเป็นส่วนถาวร โดยค่าเริ่มต้นคือ 10% ของ RAM ทั้งหมดในคอนเทนเนอร์ |
CLONE_ON_SCALE | + | All | กำหนดว่าหาก node ใหม่จากการปรับขนาดแบบ horizontal ควรโคลนจากต้นแบบของเลเยอร์ (true) หรือสร้างใหม่ตั้งแต่เริ่มต้น (false) |
CP_MEM_LIMIT | + | LLSMP, LEMP | กำหนดส่วนของ RAM ซึ่งควรจองไว้สำหรับ application server โดยค่าเริ่มต้นคือ 50% ของ RAM ทั้งหมดในคอนเทนเนอร์ |
DAS | – | GlassFish (Payara) | แสดงหากมี DAS node (จำเป็นในการกำหนดค่าคลัสเตอร์) สำหรับเลเยอร์ปัจจุบัน |
DB_MEM_LIMIT | + | LLSMP, LEMP | กำหนดส่วนของ RAM ซึ่งควรจองไว้สำหรับ MariaDB database server ที่สร้างเป็นส่วนถาวร โดยค่าเริ่มต้นคือ 40% ของ RAM ทั้งหมดในคอนเทนเนอร์ |
DEFAULT_CLUSTER | + | LiteSpeed ADC | เลือกประเภท load balancing สำหรับการร้องขอ proxy (HTTP, AJP, FCGI, LSAPI) ตรรกะนี้สามารถปิดใช้งานได้ (0, disabled, false) |
DOCKER_EXPOSED_PORT | – | All | แสดงรายการ port จากคำสั่ง EXPOSE ของ image dockerfile ซึ่งเปิดผ่าน firewall คอนเทนเนอร์ในระหว่างการสร้าง environment |
FULL_GC_AGENT_DEBUG | + | Java | เปิดใช้งาน (true) หรือปิดใช้งาน (false) debug mode เพื่อติดตามกระบวนการ Java GC ใน log |
FULL_GC_PERIOD | + | Java | ตั้งค่าช่วงเวลา (เป็นวินาที) ระหว่างการเรียก GC แบบเต็ม โดยค่าเริ่มต้น 900 เช่น 15 นาที |
G1PERIODIC_GC_INTERVAL | + (สำหรับ openJDK 12/13 เท่านั้น) | Java | ความถี่ของการรวบรวม G1 Periodic ในหน่วยมิลลิวินาที (G1PeriodicGCInterval – 15 นาทีโดยค่าเริ่มต้น) ตั้งค่าเป็น 0 เพื่อปิดการใช้งาน |
G1PERIODIC_GC_SYS_LOAD_THRESHOLD | + (สำหรับ openJDK 12/13 เท่านั้น) | Java | อนุญาตให้รวบรวมการดำเนินการ G1 Periodic หากค่าเฉลี่ย load ในระบบต่ำกว่าที่ตั้งไว้ 1 นาที เงื่อนไขนี้จะถูกละเว้นหากตั้งเป็นศูนย์ เท่ากับ {CPU_cores_number} * {GC_SYS_LOAD_THRESHOLD_RATE} โดยค่าเริ่มต้น |
GC_SYS_LOAD_THRESHOLD_RATE | + (สำหรับ openJDK 12/13 เท่านั้น) | Java | การคูณแบบกำหนดเองเพื่อปรับค่าเก่า G1PeriodicGCSystemLoadThreshold ได้อย่างยืดหยุ่น (โดยค่าเริ่มต้นคือ 0.3) |
GEM_HOME | + | Ruby | Locations (สามารถมีได้หลายแห่ง) ที่สามารถพบ GEM (ควรประกอบด้วย GEM_PATH) |
GEM_PATH | – | Ruby | Location ที่จะติดตั้งค่าเริ่มต้น GEM |
GMS_LISTENER_PORT | – | GlassFish (Payara) | Port ที่ใช้โดย Group Management Service (GMS) |
GO_BUILD_OPTIONS | + | Go | Option และ flags ที่ควรใช้สำหรับการสร้างแอปพลิเคชัน Go |
GO_RUN | + | Go | ตั้งชื่อของ binary file ที่ปฏิบัติการ หากไม่ระบุไว้ใน deployment script จะพยายามค้นหาตามชื่อโปรเจ็กต์หนึ่งที่ตั้งไว้ |
GO_RUN_OPTIONS | + | Go | Option และ flags ที่ควรใช้สำหรับการสร้างแอปพลิเคชัน Go |
GOPATH | – | Go | กำหนดโฟลเดอร์การ deploy แอปพลิเคชัน Go |
HAZELCAST_CONFIG | + | GlassFish (Payara) | ตั้งค่า path ไปยังการกำหนดค่าไฟล์ hazelcast |
HOME_DIR | – | GlassFish (Payara), WildFly, Spring Boot, Java Engine, Node.js, Shared Storage | Container home directory |
HOT_DEPLOY | + | Tomcat, TomEE | เปิดใช้งาน (true/enabled/1) หรือ ปิดใช้งาน (false/disabled/0, ค่าเริ่มต้น) การปรับใช้ด่วน (เช่นการ deploy โดยไม่ต้อง restart) สำหรับแอปพลิเคชันเซิร์ฟเวอร์ |
IRBRC | – | Ruby | Path ไปยังการกำหนดค่าไฟล์ IRB |
JAVA_ARGS | + | Java | อนุญาตให้ส่ง argument บางส่วนไปยัง function หลักของแอปพลิเคชันคุณ |
JAVA_HOME | – | Java, Maven | ชี้ไปที่ directory ที่ติดตั้ง Java Runtime Environment (JRE) |
JAVA_OPTS_CONFFILE | – | Java, Maven | Path ไปยังไฟล์ variables.conf |
JBOSS_HOME | – | WildFly | WildFly home directory |
JELASTIC_AUTOCONFIG | + | PHP, LiteSpeed ADC, MySQL, MariaDB, Percona | เปิดใช้งาน (true/enabled/1) หรือ ปิดใช้งาน (false/disabled/0) smart auto-configuration ขึ้นอยู่กับ RAM ที่จัดสรรและจำนวนของ CPU core |
JELASTIC_EXPOSE | + | All | การจัดการสถานะฟังก์ชัน auto-redirect ด้วยความสามารถในการกำหนด port ที่ต้องการด้วยตัวเอง |
JELASTIC_MEMORY_AUTOCONFIG | + | WildFly | เปิดใช้งาน (true) หรือปิดใช้งาน (false) การกำหนดค่า memory โดยอัตโนมัติสำหรับ WildFly |
JELASTIC_PORTS | + (ก่อนการสร้าง env) | All | การระบุ port เองซึ่งควรเปิดใน firewall ในระหว่างการสร้าง container |
JELASTIC_PRIORITY_PORTS | + | GlassFish (Payara) | ตั้งค่า port ตัวฟัง HTTP ของ GlassFish |
LAUNCH_JBOSS_IN_BACKGROUND | + | WildFly | เปิดใช้งาน (true) หรือปิดใช้งาน (false) การเริ่มต้นของแอปพลิเคชันเซิร์ฟเวอร์ใน background mode |
LSWS_MAX_CHILDREN | + | LLSMP, LiteSpeed Web Server | การกำหนดขีดสูงสุดของ childdren process สำหรับเซิร์ฟเวอร์ เนื่องจากการตั้งค่าเริ่มต้นจะเท่ากับจำนวนของ CPU core ที่พร้อมใช้งาน คุณต้องเพิ่มตัวแปรนี้ด้วยตนเองและรีสตาร์ทเซิร์ฟเวอร์เพื่อกำหนดค่าใหม่ |
MASTER_HOST | – | All | ชื่อโฮสต์แบบสั้นสำหรับ node หลักภายในเลเยอร์ |
MASTER_ID | – | All | ตัวระบุ node เฉพาะของ node หลักภายในเลเยอร์ |
MASTER_IP | – | All | ที่อยู่ IP ภายในของ node หลักภายในเลเยอร์ |
MAVEN_DEPLOY_ARTIFACT | + | Maven | กำหนด artifact ที่จะ deploy (สามารถกำหนดใหม่สำหรับโปรเจ็กต์โดยเฉพาะ) |
MAVEN_OPTS | + | Maven | ตั้งค่าพารามิเตอร์ที่จะใช้เพื่อเริ่มต้น JVM เพื่อรัน Maven และสามารถใช้เพื่อจัดหาตัวเลือก global เพิ่มเติม |
MAVEN_RUN_ARGS | + | Maven | อนุญาตให้ส่ง argument ที่กำหนดเองสำหรับการสร้างแอปพลิเคชัน (สามารถกำหนดใหม่สำหรับโปรเจ็กต์โดยเฉพาะ) |
MAX_OOM_REDUCE_CYCLES | + | MySQL, MariaDB, Percona | การกำหนดจำนวนรอบสูงสุดสำหรับการลดขนาด innodb_buffer_pool_size หลังจากการรรีสตาร์ทที่เกิดจาก OOM (ค่าเริ่มต้น 5 ครั้ง) |
MY_RUBY_HOME | – | Ruby | Path ไปยัง directory ที่มี Ruby engine อยู่ |
NODE_ENV | – | Node.js | ระบุ environment ที่แอปพลิเคชันกำลังทำงานอยู่ (เช่น development, staging, production, testing และอื่นๆ) |
NODE_OPTIONS | + | Node.js | ตัวแปรสำหรับระบุตัวเลือก Node.js runtime v8 |
NVM_DIR | – | Node.js | Path ไปที่ตำแหน่งการติดตั้ง NVM |
ON_ENV_INSTALL | + (ก่อนการสร้าง env) | All | Script (หรือการเชื่อมโยง) ที่จะดำเนินการหลังจากสร้าง environment |
OOM_ADJUSTMENT | + | MySQL, MariaDB, Percona | กำหนดค่าเป็น %, MB, GB (ค่าเริ่มต้นเท่ากับ 10%) ที่พารามิเตอร์ปัจจุบัน innodb_buffer_pool_size ควรลดลงหลังจากการรีสตาร์ทแต่ละครั้งที่เกิดจาก OOM |
OOM_DETECTION_DELTA | + | MySQL, MariaDB, Percona | ตั้งค่าช่วงเวลา (โดยมีค่าเริ่มต้นที่ 2 นาที) สำหรับการวิเคราะห์และบันทึก log หลังจากการรีสตาร์ท service แต่ละครั้งเพื่อตัดสินว่าเกิดจาก OOM killer หรือไม่ |
PACKAGE_MANAGER | + | Node.js | ตัวแปรที่ประกอบด้วยชื่อของการจัดการแพ็คเกจสำหรับการติดตั้งแพ็คเกจ javascript (npm หรือ yarn) |
PACKAGE_MANAGER_OPTS | + | Node.js | ตัวเลือกเพิ่มเติมสำหรับการจัดการแพ็คเกจ (อ้างอิงจากเอกสาร npm หรือ yarn อย่างเป็นทางการ) |
PATH | – | All | ค่าเริ่มต้นตัวแปร shell พร้อมกับรายการ path ไปยัง directory ด้วยฏปรแกรมปฏิบัติการ |
PHPFPM_MAX_CHILDREN | + | NGINX PHP | ตั้งค่าจำนวนระบบปฏิบัติการย่อย (child) สำหรับ PHP-FPM เท่ากับจำนวนของ CPU core ที่พร้อมใช้งานสำหรับคอนเทนเนอร์โดยค่าเริ่มต้น (ไม่น้อยกว่า 2) |
PORT_4848_TCP_PORT | – | GlassFish (Payara) | Port สำหรับผู้ดูแลระบบ |
PROCESS_MANAGER | + | Node.js | ตัวแปรสำหรับการเลือก node.js process manager (เช่น npm, pm2, forever, supervisor) |
PROCESS_MANAGER_FILE | – | Node.js | Path ไปยังไฟล์ที่มีตัวเลือก start สำหรับ process manager |
PSWD_FILE | – | GlassFish (Payara) | Path ไปยังไฟล์ด้วยรหัสผ่านของผู้ใช้/ผู้ดูแลระบบ |
REDIRECT_EXCLUDE_PORTS | + | Node.js | ไม่รวมพอร์ตดังต่อไปนี้จาก auto-redirect algorithm (เช่น 22,23,25,21,111,2049,8743,7979) |
REDIS_COMMANDER | + | Redis | กำหนดว่าคำสั่ง redis ควรเปิดใช้งานหรือปิดใช้งาน |
REDIS_ENABLED | + | PHP | เปิดใช้งาน (true) หรือปิดใช้งาน (false) การ cache ด้วย redis จำเป็นต้องเริ่มบริการเพื่อใช้การเปลี่ยนแปลง |
REDIS_SENTINEL | + | Redis | กำหนดว่าควรเปิดหรือปิดเครื่องมือที่มีความพร้อมใช้งานสูงและเครื่องมือตรวจสอบของ Redis Sentinel หรือไม่ |
ROOT_DIR | – | Node.js | แสดง path ไปยัง application deployment directory |
SERVER_WEBROOT | – | LLSMP, LiteSpeed Web Server | แสดง path ไปยัง application deployment directory |
STACK_NAME | – | All | ชื่อของ stack ปัจจุบัน |
STACK_PATH | – | All | home directory ของ stack |
STACK_USER | – | All | ชื่อของ stack ที่ตั้งค่าโดยผู้ใช้งาน |
STANDALONE_MODE_CONFIG | + | WildFly | configuration file เพื่อเปิดใช้เซิร์ฟเวอร์ WildFly แบบ standlone |
TCP_BALANCING | + | HAProxy | เปิดใช้งาน (true) หรือปิดใช้งาน (false) Proxy การรับส่งข้อมูลและการปรับสมดุลไปยัง TPC backend |
UPDATE_PACKAGES_ON_RESTART | + | Node.js | เปิดใช้งาน (true) หรือปิดใช้งาน (false) การติดตั้งแพ็คเกจอัตโนมัติหลังจากเริ่มบริการ node.js หากไม่มี node_modules directory อยู่ภายใน webroot หนึ่งการอัปเดตดังกล่าวจะถูกเรียกโดยไม่คำนึงถึงตัวแปรนี้ |
UPSTREAM _KEEPALIVE | + | NGINX balancer | ตั้งค่าคำสั่ง Keepalive สำหรับการ upstream |
VERT_SCALING | + | Java | กำหนดว่าควรเปิดใช้งาน (true) Java GC agent เริ่มต้นหรือปิดใช้งาน (false) |
WAF | + | LLSMP, LiteSpeed Web Server | เปิดใช้งาน (true) หรือปิดใช้งาน (false) Web Application Firewall ด้วยกฎเริ่มต้นของ Comodo ที่ตั้งไว้สำหรับเว็บเซิร์ฟเวอร์ LiteSpeed |
WEB_ROOT | – | Go | Path ไปยัง deployed application |
WEBROOT | – | PHP, Tomcat (TomEE), GlassFish (Payara) | แสดง path ไปยัง application deployment directory |
WORKER_PROCESSES | + | NGINX balancer | ตั้งค่าจำนวน worker process – สามารถตรวจจับอัตโนมัติโดย NGINX (อัตโนมัติ) หรือตั้งค่าให้เท่ากับจำนวนของ CPU core (ที่กำหนด) |
WP_PROTECT | + | LLSMP, LiteSpeed Web Server, LiteSpeed ADC | กำหนดค่าสำหรับฟีเจอร์การป้องกันการโจมตี WordPress Brute Force (off|on|drop|deny|throttle|captcha; off โดยค่าเริ่มต้น) |
WP_PROTECT_LIMIT | + | LLSMP, LiteSpeed Web Server, LiteSpeed ADC | กำหนดขีดจำกัดสำหรับฟีเจอร์การป้องกันการโจมตีของ WordPress Brute Force (0|1|2-1000; 10 โดยค่าเริ่มต้น) |
หมายเหตุ: ตัวแปรที่มีเครื่องหมาย “+” ในคอลัมน์การแก้ไขนั้นุณสามารถปรับเปลี่ยนคอนเทนเนอร์ได้อย่างอิสระ โดยจะต้องทำการ restart เพื่อใช้การเปลี่ยนแปลง
ไม่แนะนำให้เปลี่ยนแปลงตัวแปรที่มีเครื่องหมาย “-” เนื่องจากการดำเนินการดังกล่าวจะไม่สามารถนำการเปลี่ยนแปลงที่เกิดขึ้นไปใช้จริงกับคอนเทนเนอร์ อย่างไรก็ตามการแก้ไข “-” อาจทำลาย logic บางอย่างภายในได้
ตัวเลือกที่สามารถใช้ได้กับการจัดการสแต็กทั้งหมดมีดังนี้:
ชื่อตัวแปร | การแก้ไข* | คำอธิบาย |
{SOFTWARE}_VERSION | – | เวอร์ชันของซอฟต์แวร์ที่ระบุ (stack, engine, template, module) และอื่นๆ |
CLONE_ON_SCALE | + | กำหนดว่าหาก node ใหม่จากการปรับขนาดแบบ horizontal ควรโคลนจากต้นแบบของเลเยอร์ (true) หรือสร้างใหม่ตั้งแต่เริ่มต้น (false) |
DOCKER_EXPOSED_PORT | – | แสดงรายการ port จากคำสั่ง EXPOSE ของ image dockerfile ซึ่งเปิดผ่าน firewall คอนเทนเนอร์ในระหว่างการสร้าง environment |
JELASTIC_EXPOSE | + | การจัดการสถานะฟังก์ชัน auto-redirect ด้วยความสามารถในการกำหนด port ที่ต้องการด้วยตัวเอง |
JELASTIC_PORTS | + | การระบุ port เองซึ่งควรเปิดใน firewall ในระหว่างการสร้าง container |
MASTER_HOST | – | ชื่อโฮสต์แบบสั้นสำหรับ node หลักภายในเลเยอร์ |
MASTER_ID | – | ตัวระบุ node เฉพาะของ node หลักภายในเลเยอร์ |
MASTER_IP | – | ที่อยู่ IP ภายในของ node หลักภายในเลเยอร์ |
ON_ENV_INSTALL | + | Script (หรือการเชื่อมโยง) ที่จะดำเนินการหลังจากสร้าง environment |
PATH | – | ค่าเริ่มต้นตัวแปร shell พร้อมกับรายการ path ไปยัง directory ด้วยฏปรแกรมปฏิบัติการ |
STACK_NAME | – | ชื่อของ stack ปัจจุบัน |
STACK_PATH | – | home directory ของ stack |
STACK_USER | – | ชื่อของ stack ที่ตั้งค่าโดยผู้ใช้งาน |
Java
คลิกที่นี่เพื่อดูลิสตัวแปร Java
PHP
คลิกที่นี่เพื่อดูลิสตัวแปร PHP
Ruby
คลิกที่นี่เพื่อดูลิสตัวแปร Ruby
Node.js
คลิกที่นี่เพื่อดูลิสตัวแปร Node.js
Go (Golang)
คลิกที่นี่เพื่อดูลิสตัวแปร Go (Golang)
Load Balancers
คลิกที่นี่เพื่อดูลิสตัวแปร Load Balancers
Databases
คลิกที่นี่เพื่อดูลิสตัวแปร Databases