Web Server – Tản mạn PHP Handler và Apache
Apache
13
web server
1
PHP
84
php handler
1
White

Hùng Phạm viết ngày 06/02/2019

Cho mình xin quảng cáo một tí xíu trước khi bắt đầu nha :smile:

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. :smile:

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 ).

alt text

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.

alt text

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

alt text

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.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Hùng Phạm

8 bài viết.
11 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
6 2
CSS Sprites thật ra đã là một cái tên khá cũ rồi và mình viết bài viết này hy vọng nó sẽ hữu ích cho các anh em nào chưa bao giờ biết đến cái tên c...
Hùng Phạm viết 3 tháng trước
6 2
White
4 2
Webpack là một cái tên không quá mới nhưng mình nghĩ không ít lần các anh em đã nghe qua nó. Nhiệm vụ chính của Webpack trong hệ thống là dùng để đ...
Hùng Phạm viết 3 tháng trước
4 2
White
3 0
Trước khi bắt đầu viết tiếp phần 2, các anh em có thể xem lại Phần 1 của mình theo đường dẫn bên dưới: (Link) Hoặc là có thể xem bài viết full cả...
Hùng Phạm viết 2 tháng trước
3 0
Bài viết liên quan
White
3 2
Bash script to fast serve Laravel project Lười gõ dòng lệnh quá nên tạo ra cái script để gõ nhanh :D laravelstart.sh /bin/bash if z "$1" ] ...
Vũ Hoàng Chung viết 2 năm trước
3 2
Male avatar
9 1
Để bắt đầu làm thêm của riêng bạn thì ban đầu bạn phải có một theme trắng ( Blank theme ) để bắt đầu Theme trắng là gồm có các thư mục và file cơ b...
Doan Van Manh viết hơn 3 năm trước
9 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
8 bài viết.
11 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!