Cài đặt Apache trên CentOS7
Tài liệu tham khảo chính thức
Trang web chính thức Tài liệu sản phẩm HTTPS GzipThực hiện cài đặt
yum -y install libmcrypt libmcrypt-devel mcrypt mhash
yum -y install httpd
Sửa đổi tệp cấu hình
Sau khi cài đặt xong, chúng ta cần thực hiện một số sửa đổi đối với tệp cấu hình. Nội dung sửa đổi cụ thể thường bao gồm: IP và cổng bị ràng buộc, truyền nén gzip, số lượng kết nối đồng thời và SSL. Chúng ta hãy giải thích từng cái một dưới đây.
Sửa đổi IP và cổng liên kết
IP và cổng mặc định mà Apache lắng nghe là 0.0.0.0:80. Nếu chúng tôi cần sửa đổi IP và cổng được giám sát, chúng tôi có thể sửa đổi trực tiếp. Nếu chúng ta cần liên kết nhiều cổng, chúng ta cũng có thể thêm chúng. Trong ví dụ sau, chúng tôi liên kết các cổng 80 và 443. Cổng 443 là số cổng mặc định cho HTTPS.
Listen 80
Listen 443 https
Mở truyền gzip
Do hiệu suất CPU máy tính của chúng ta tương đối cao, thường thì băng thông mạng sẽ xuất hiện nút cổ chai, vì vậy chúng ta có thể chọn bật truyền nén gzip. Có 9 cấp độ nén, chúng ta có thể lựa chọn theo hiệu suất của máy chủ và tìm cấp độ phù hợp nhất. Trong ví dụ dưới đây, chúng tôi đặt nó ở mức 1. Các loại tập tin nén là: html, xml, php, css, js, chúng ta cũng có thể thêm các loại tập tin nén khi cần thiết.
<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>
Thiết lập KeepAlive
Chức năng của KeepAlive là giữ cho máy khách và máy chủ được kết nối trong một khoảng thời gian. Khi chúng tôi mở một trang web, chúng tôi thường cần tải nội dung chính, js, css và hình ảnh. Vì mỗi tài nguyên cần khởi tạo một yêu cầu HTTP riêng biệt, chúng tôi bật KeepAlive để giảm thời gian cần thiết cho mỗi yêu cầu thiết lập liên kết TCP / IP. Nhưng KeepAlive cũng có nhược điểm là nó sẽ khiến tài nguyên IO của máy chủ bị chiếm dụng, vì vậy chúng ta cần lựa chọn có bật KeepAlive tùy theo tình hình thực tế hay không. Nếu bật KeepAlive, chúng ta cũng cần đặt thời gian chờ hợp lý cho nó để tránh tình trạng IO máy chủ bị chiếm dụng trong thời gian dài. Ví dụ sau chứa một số cài đặt chính của KeepAlive.
KeepAlive On
MaxKeepAliveRequests 400
KeepAliveTimeout 5
Định cấu hình số lượng đồng thời
Một cấu hình hợp lý của số lượng đồng thời có thể cải thiện đáng kể thông lượng của máy chủ. Thông thường Apache của chúng tôi hoạt động ở chế độ mpm_prefork. Chúng ta cần cấu hình hợp lý một số thông số chính. Điều chúng ta cần chú ý là số lượng kết nối tối đa không được quá ít, quá nhỏ sẽ khiến số lượng lớn yêu cầu của người dùng bị từ chối khi tính đồng thời cao. Giá trị hợp lý mà chúng ta đặt nên tham chiếu đến CPU và bộ nhớ của máy chủ, miễn là đủ tài nguyên thì đặt càng lớn càng tốt, nhưng nếu đặt quá lớn thì tài nguyên máy chủ sẽ cạn kiệt và Apache cũng sẽ sập.
<IfModule mpm_prefork_module>
StartServers 10
MinSpareServers 25
MaxSpareServers 50
ServerLimit 1500
MaxClients 1000
MaxRequestsPerChild 3000
</IfModule>
Định cấu hình SSL
Hầu hết các trang web hiện đã bật SSL để hỗ trợ kết nối an toàn HTTPS. Ưu điểm của HTTPS là nội dung trong quá trình truyền được mã hóa nên không lo bị rò rỉ thông tin do bị người khác đánh chặn. Trước khi bật SSL, trước tiên chúng ta phải đăng ký chứng chỉ. Sau khi chúng ta nhận được chứng chỉ, hãy tham khảo cấu hình sau để hoàn tất cài đặt 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>