เมื่อคุณใช้งาน Plesk บนเซิร์ฟเวอร์ Cloud VPS ของ Dot Enterprise คุณจะพบว่า Plesk ถูกออกแบบให้ใช้งาน Apache และ Nginx ร่วมกันเพื่อให้ได้ประสิทธิภาพสูงสุด บทความนี้จะอธิบายวิธีการตั้งค่า Apache และ Nginx อย่างถูกต้องเพื่อให้เซิร์ฟเวอร์ของคุณทำงานได้อย่างเหมาะสม
Nginx และ Apache ทำงานร่วมกันในสถาปัตยกรรม Plesk อย่างไร
ใน Plesk บนระบบ Cloud VPS Nginx ทำหน้าที่เป็น reverse proxy ที่หน้าต่างเซิร์ฟเวอร์ (front-end) ขณะที่ Apache ทำงานเป็น backend server ที่จัดการกับการประมวลผลไฟล์ PHP และการดำเนิน PHP handlers ที่หลากหลาย
สถาปัตยกรรมนี้มีข้อดี:
- Nginx มีน้ำหนักเบา เร็วมากในการให้บริการไฟล์คงที่และทำหน้าที่เป็น reverse proxy
- Apache มีความยืดหยุ่นสูง รองรับ .htaccess และ mod_rewrite
- การแยกหน้าที่นี้ช่วยให้ประสิทธิภาพดีขึ้นและโหลด HTTP ลดน้อยลง
- ง่ายต่อการตั้งค่า HTTPS และ SSL certificates
การเปิด/ปิด Nginx สำหรับโดเมนแต่ละอัน
ใน Plesk Control Panel คุณสามารถควบคุมว่าจะใช้ Nginx สำหรับโดเมนใดบ้าง ทำตามขั้นตอนต่อไปนี้:
- เข้าไปยัง Plesk Control Panel และเลือก “Domains” หรือ “Websites”
- คลิกที่โดเมนที่ต้องการตั้งค่า
- เลือก “Web Server” หรือ “Apache & Nginx Settings”
- หากต้องการใช้ Nginx ให้เลือก “Process requests via Nginx”
- หากต้องการปิด Nginx สำหรับโดเมนนี้ ให้เลือก “Process requests via Apache”
- คลิก “Apply” เพื่อบันทึกการเปลี่ยนแปลง
โปรดทราบว่าการเปลี่ยนแปลงอาจใช้เวลาสักครู่ในการมีผล เนื่องจากต้องโหลดหน้าใหม่ บน Cloud VPS ของ Dot Enterprise โดยทั่วไปการเปลี่ยนจะมีผลภายในสองสามนาที
การตั้งค่า Apache Directives เพิ่มเติม
Apache Directives เป็นคำสั่งที่ให้คุณควบคุมพฤติกรรมของ Apache สำหรับโดเมนเฉพาะ ใน Plesk คุณสามารถเพิ่ม Additional Apache Directives ได้ดังนี้:
- ไปที่โดเมนที่ต้องการในหน้า “Apache & Nginx Settings”
- เลือก “Apache” แล้วเลือก “Additional directives for Apache”
- เพิ่มคำสั่ง Apache ที่ต้องการ
ตัวอย่าง Apache Directives ที่มีประโยชน์:
<Directory /var/www/vhosts/yourdomain.com>
Options FollowSymLinks Includes
AllowOverride All
Require all granted
</Directory>
# ตั้งค่า PHP handler
AddHandler application/x-httpd-php73 .php
# ตั้งค่า Memory Limit สำหรับ PHP
php_value memory_limit 256M
php_value max_execution_time 300
การตั้งค่า Nginx Directives
ในส่วน Nginx Settings คุณสามารถปรับแต่งการทำงานของ Nginx ได้ ตัวอย่าง Nginx directives ที่นิยมใช้:
# ตั้งค่า proxy สำหรับ Apache
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# ตั้งค่า Cache Headers
add_header Cache-Control "public, max-age=3600";
# ตั้งค่า Gzip compression
gzip on;
gzip_types text/plain text/css application/json application/javascript;
gzip_min_length 1000;
PHP Handler: FastCGI และ PHP-FPM
Plesk รองรับหลายวิธีในการประมวลผล PHP โดยทั่วไปจะเลือกระหว่าง FastCGI และ PHP-FPM
- FastCGI: เหมาะสำหรับเซิร์ฟเวอร์เล็กถึงกลาง ใช้ทรัพยากรน้อยกว่า
- PHP-FPM (FastCGI Process Manager): เหมาะสำหรับเซิร์ฟเวอร์ที่มีจำนวน websites จำนวนมาก มีประสิทธิภาพดีกว่า
การเปลี่ยน PHP Handler ใน Plesk:
- ไปที่ “Domains” และเลือกโดเมนที่ต้องการ
- เลือก “PHP Settings”
- เลือก “Handler” และเลือก FastCGI หรือ PHP-FPM ตามที่ต้องการ
- บันทึกการเปลี่ยนแปลง
การตั้งค่า .htaccess บน Plesk
.htaccess เป็นไฟล์คำสั่งสำหรับ Apache ที่ให้คุณควบคุมพฤติกรรมของ Apache โดยไม่ต้องแก้ไขไฟล์ config หลัก ใน Plesk คุณสามารถใช้ .htaccess ได้โดยตรง
ตัวอย่าง .htaccess ที่มีประโยชน์:
# เปิด mod_rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Remove .php extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)$ $1.php [L]
</IfModule>
หลังจากสร้าง .htaccess ให้อัปโหลดไปยังโฟลเดอร์หลัก (public_html) ของเว็บไซต์ของคุณ Plesk จะจดจำได้โดยอัตโนมัติ
Custom Error Pages
การตั้งค่า Custom Error Pages ช่วยให้เว็บไซต์ดูเป็นมืออาชีพยิ่งขึ้น ใน Plesk ทำตามขั้นตอนต่อไปนี้:
- เข้าไปยัง “Websites & Domains” ในหน้าของโดเมน
- เลือก “Web Server” หรือ “Apache & Nginx Settings”
- ค้นหาส่วน “Custom Error Pages”
- อัปโหลดหรือสร้างไฟล์ HTML สำหรับข้อผิดพลาด เช่น error_404.html สำหรับ 404 errors
# ในส่วน Apache Directives
ErrorDocument 404 /error_404.html
ErrorDocument 500 /error_500.html
ErrorDocument 503 /error_503.html
การ Redirect HTTP ไปยัง HTTPS
การตั้งค่า HTTPS เป็นสิ่งสำคัญเพื่อรักษาความปลอดภัยของเว็บไซต์ Plesk ช่วยให้การตั้งค่า SSL/TLS ง่ายขึ้น ทำตามขั้นตอนต่อไปนี้:
- ติดตั้ง SSL Certificate ก่อน (สามารถใช้ Let’s Encrypt ฟรี)
- เข้าไป “Websites & Domains” และเลือกโดเมน
- เลือก “Security” และตรวจสอบ “SSL/TLS certificate”
- เปิด “Require SSL/TLS for this domain”
หรือใช้ .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Performance Tuning: Keep-Alive, Compression และ Caching
เพื่อให้เว็บไซต์ของคุณทำงานด้วยประสิทธิภาพสูง ลองตั้งค่าต่อไปนี้:
Keep-Alive Settings
Keep-Alive ช่วยให้การเชื่อมต่อ HTTP ยังคงเปิดอยู่เพื่อให้สามารถส่งคำขอหลายรายการได้ โดยไม่จำเป็นต้องสร้างการเชื่อมต่อใหม่ทุกครั้ง
<IfModule mod_keepalive.c>
KeepAlive On
KeepAliveTimeout 5
MaxKeepAliveRequests 100
</IfModule>
Compression (Gzip)
Gzip compression ลดขนาดของไฟล์ที่ส่งจากเซิร์ฟเวอร์ไปยังเบราว์เซอร์ได้มากถึง 70-80%
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/javascript
</IfModule>
Cache Headers
Cache Headers บอกให้เบราว์เซอร์และ CDN รู้ว่าควรจัดเก็บไฟล์ไว้นานเท่าใด
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 2 days"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
</IfModule>
