ติดตั้ง Apache บน CentOS7
อ้างอิงอย่างเป็นทางการ
เว็บไซต์อย่างเป็นทางการ เอกสารผลิตภัณฑ์ HTTPS Gzipดำเนินการติดตั้ง
yum -y install libmcrypt libmcrypt-devel mcrypt mhash
yum -y install httpd
แก้ไขไฟล์คอนฟิกูเรชัน
หลังจากการติดตั้งเสร็จสิ้นเราจำเป็นต้องทำการแก้ไขบางอย่างกับไฟล์คอนฟิกูเรชัน โดยทั่วไปเนื้อหาการแก้ไขเฉพาะประกอบด้วย: IP และพอร์ตที่ถูกผูกไว้, การส่งการบีบอัด gzip, จำนวนการเชื่อมต่อพร้อมกันและ SSL มาอธิบายทีละคนด้านล่าง
แก้ไข IP และพอร์ตที่ถูกผูกไว้
IP และพอร์ตเริ่มต้นที่ Apache รับฟังคือ 0.0.0.0:80 หากเราต้องการแก้ไข IP และพอร์ตที่ตรวจสอบเราสามารถแก้ไขได้โดยตรง หากเราต้องการเชื่อมโยงหลายพอร์ตเราสามารถเพิ่มได้ ในตัวอย่างต่อไปนี้เราผูกพอร์ต 80 และ 443 พอร์ต 443 เป็นหมายเลขพอร์ตเริ่มต้นสำหรับ HTTPS
Listen 80
Listen 443 https
เปิดการส่ง gzip
เนื่องจากประสิทธิภาพ CPU ของคอมพิวเตอร์ของเราค่อนข้างสูงโดยปกติคอขวดจะปรากฏในแบนด์วิดท์ของเครือข่ายดังนั้นเราจึงสามารถเลือกที่จะเปิดการส่งการบีบอัด gzip ได้ มีการบีบอัด 9 ระดับเราสามารถเลือกได้ตามประสิทธิภาพของเซิร์ฟเวอร์ของเราและค้นหาระดับที่เหมาะสมที่สุด ในตัวอย่างด้านล่างเราตั้งค่าเป็นระดับ 1 ประเภทไฟล์บีบอัด ได้แก่ html, xml, php, css, js เรายังสามารถเพิ่มประเภทไฟล์บีบอัดได้ตามต้องการ
<IfModule mod_deflate.c>
DeflateCompressionLevel 1
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript application/x-httpd-php
AddOutputFilter DEFLATE js css
</IfModule>
ตั้งค่า KeepAlive
ฟังก์ชั่นของ KeepAlive คือให้ไคลเอนต์และเซิร์ฟเวอร์เชื่อมต่อกันเป็นระยะเวลาหนึ่ง เมื่อเราเปิดหน้าเว็บโดยปกติเราจะต้องโหลดเนื้อหาหลัก js, css และรูปภาพเนื่องจากทรัพยากรแต่ละรายการจำเป็นต้องเริ่มต้นคำขอ HTTP แยกกันเราจึงเปิดใช้ KeepAlive เพื่อลดเวลาที่ต้องใช้สำหรับแต่ละคำขอเพื่อสร้างลิงก์ TCP / IP แต่ KeepAlive ก็มีข้อเสียเช่นกันซึ่งจะทำให้ทรัพยากร IO ของเซิร์ฟเวอร์ถูกครอบครองดังนั้นเราจำเป็นต้องเลือกว่าจะเปิดใช้ KeepAlive ตามสถานการณ์จริงหรือไม่ หากเปิดใช้ KeepAlive เราจำเป็นต้องกำหนดระยะหมดเวลาที่เหมาะสมเพื่อหลีกเลี่ยงไม่ให้เซิร์ฟเวอร์ IO ถูกครอบครองเป็นเวลานาน ตัวอย่างต่อไปนี้ประกอบด้วยการตั้งค่าหลักหลายประการของ KeepAlive
KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
กำหนดค่าจำนวนการทำงานพร้อมกัน
การกำหนดค่าจำนวนการทำงานพร้อมกันที่เหมาะสมสามารถปรับปรุงทรูพุตของเซิร์ฟเวอร์ได้อย่างมาก โดยปกติ Apache ของเราจะทำงานในโหมด mpm_prefork เราจำเป็นต้องกำหนดค่าพารามิเตอร์หลักหลายอย่างอย่างสมเหตุสมผล สิ่งที่เราต้องให้ความสนใจคือจำนวนการเชื่อมต่อสูงสุดไม่ควรน้อยเกินไปเล็กเกินไปจะทำให้คำขอของผู้ใช้จำนวนมากถูกปฏิเสธเมื่อความพร้อมกันสูง ค่าที่เหมาะสมที่เราตั้งไว้ควรอ้างอิงถึง CPU และหน่วยความจำของเซิร์ฟเวอร์ตราบใดที่ทรัพยากรเพียงพอเราควรตั้งค่าให้ใหญ่ที่สุดเท่าที่จะเป็นไปได้ แต่ถ้าเราตั้งค่าขนาดใหญ่เกินไปทรัพยากรเซิร์ฟเวอร์จะหมดและ Apache ก็จะหยุดทำงานด้วย
<IfModule mpm_prefork_module>
StartServers 10
MinSpareServers 25
MaxSpareServers 50
ServerLimit 1500
MaxClients 1000
MaxRequestsPerChild 3000
</IfModule>
กำหนดค่า SSL
ขณะนี้เว็บไซต์ส่วนใหญ่เปิดใช้ SSL เพื่อรองรับการเชื่อมต่อที่ปลอดภัยของ HTTPS ข้อดีของ HTTPS คือเนื้อหาระหว่างการส่งจะถูกเข้ารหัสดังนั้นจึงไม่จำเป็นต้องกังวลเกี่ยวกับการรั่วไหลของข้อมูลเนื่องจากการดักฟังโดยผู้อื่น ก่อนเปิดใช้งาน SSL เราต้องสมัครใบรับรองก่อนหลังจากที่เราได้รับใบรับรองแล้วโปรดดูการกำหนดค่าต่อไปนี้เพื่อดำเนินการตั้งค่า SSL ให้เสร็จสมบูรณ์
<VirtualHost *:443>
ServerAdmin www.test.com
ServerName www.testl.com
DocumentRoot /var/www/test
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
SSLCertificateFile /etc/httpd/conf/cert/public.crt
SSLCertificateKeyFile /etc/httpd/conf/cert/1533528967430.key
SSLCertificateChainFile /etc/httpd/conf/cert/chain.crt
AllowEncodedSlashes on
<Directory "/var/www/test.com">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>