Web Server – Tản mạn PHP Handler và Apache
Cho mình xin quảng cáo một tí xíu trước khi bắt đầu nha https://hungphamdevweb.com/web-server-tan-man-php-handler-va-apache.html Đối với các anh chị em Web Developer thì không còn xa lạ với Apache, Web Server chuyên dùng để run các webpage được build bằng PHP. Lúc mình mới tìm hiểu về lập ...
Cho mình xin quảng cáo một tí xíu trước khi bắt đầu nha
https://hungphamdevweb.com/web-server-tan-man-php-handler-va-apache.html
Đối với các anh chị em Web Developer thì không còn xa lạ với Apache, Web Server chuyên dùng để run các webpage được build bằng PHP.
Lúc mình mới tìm hiểu về lập trình, có lúc mình tự hỏi tại sao Nodejs không có Web Server, tại sao các webpage bằng PHP lại cần Apache. Lúc đó mình thật ngớ ngẩn.
Và hy vọng bài viết này sẽ hữu ích cho các anh em còn đang bối rối về Web Server, Apache, Nginx, Nodejs … bla…bla. Nó là gì và tại sao lại cần nó. Bài viết được xây dựng dựa trên kiến thức và trải nghiệm của mình nên đâu đó sẽ chưa thật hoàn hảo. Hy vọng sẽ luôn nhận được đóng góp của các anh chị em.
Web Server Là Gì ?
Web Server là nơi lưu trữ các file thành phần của một website (ví dụ: các tài liệu HTML, các file ảnh, CSS và các file JavaScript) và có thể phân phát chúng tới thiết bị của người dùng cuối (end-user) thông qua các HTTP request. Web Server có thể là phần cứng nhưng cũng có thể là phần mền.
Có một số Web Server nổi tiếng hiện nay như: Apache, Nginx, ISS (của Microsoft), LightSpeed, Tengine ( web server của taobao ).
Web Server Apache:
Apache là một cái tên khá quen thuộc rồi, ai làm web chắc cũng sẽ biết. Apache có cấu trúc dạng module và là một mã nguồn mở nên các anh em có thể dễ dàng thêm các module của riêng mình vào máy chủ khi cần.
Nhưng bài viết này mình không phải giới thiệu Apache mà mình muốn giới thiệu module của Apache cơ.
Bản thân hiệu suất của Web Server được build bằng Apache có phần thấp hơn so với các máy chủ Nginx, nhưng để cải thiện hiệu suất Apache thì các anh em cần phải quan tâm đến PHP Handler.
Vậy PHP Handler Là Gì ?
PHP Handler là một loại module của Apache, bao gồm các thư viện để giúp Apache có thể dịch và chạy các script được viết bằng PHP.
Có 4 loại PHP Handler: DSO, CGI, SuPHP, FCGI. Mỗi loại PHP Handler sẽ có những điểm mạnh và điểm yếu khác nhau như:
DSO: hay còn gọi là mod_php, cũ nhưng lại là php handler nhanh nhất, kém bảo mật.
CGI: là một phương thức thay thế cho DSO trong những tình huống DSO không có tác dụng, kém bảo mật.
SuPHP: là phiên bản nâng cấp so với CGI, bảo mật tốt, ngốn nhiều tài nguyên CPU và không thể sử dụng Opcode Cache.
FCGI : là giải pháp hiệu suất cao thay cho CGI, PHP sẽ được load dưới quyền sở hữu PHP Script đó tương tự như SuPHP, tốc độ gần bằng DSO, ít tốt tài nguyên CPU hơn và có thể sử dụng Opcode Cache để tốc độ website nhanh hơn.
Quy chung lại thì tốc độ xử lí của Apache phụ thuộc vào module PHP Handler mà các anh em sử dụng.
Các anh em có thể xem thêm bài viết bên dưới để hiểu tường tận hơn về các loại PHP Handler.
https://www.hostdime.com/kb/pages/viewpage.action?pageId=2228476
Tổng Kết:
Sau một hồi vòng quanh trái đất, dưới đây là một vài đề xuất nho nhỏ của mình để build một Web Server Aplication cho các anh em đang sử dụng VPS, để đạt hiệu suất tối đa nhưng vẫn tiết kiệm được tài nguyên:
Hãy kết hợp bộ đôi: Apache và Nginx.
Apache sẽ là web server chạy chính cho các anh em không muốn quá lằng nhằng với Nginx về vấn đề config.
Riêng bản thân Nginx rất là flexible nên các anh em có thể dùng thằng em nhỏ để là reserve proxy, dùng để cache và kiêm việc filter cho server.
Sử dụng FCGI để giúp Apache và Nginx đạt tốc độ xử lí nhanh nhất.
Việc lựa chọn phiên bản PHP 7x trở lên cũng đóng góp to lớn trong việc tăng hiệu suất của cả hệ thống.