NGINX là gì? Cơ chế hoạt động & chức năng của NGINX
Nếu bạn đang tìm kiếm một giải pháp tối ưu có thể xử lý nhiều kết nối đồng thời thì NGINX sẽ là một lựa chọn tốt nhất dành cho bạn. Vậy NGINX là gì? Apache Server và NGINX server có gì khác biệt? Làm thế nào để cài đặt web server NGINX về máy? Sau đây, FPT Cloud mời bạn cùng tìm hiểu bài viết sau đây để hiểu rõ hơn về web server mã nguồn mở này.
NGINX hay còn được viết cách điệu là NGIИX, là một web server mã nguồn mở vô cùng mạnh mẽ và nổi tiếng phục vụ web HTTP. Với NGIИX sử dụng kiến thức đơn luồng, (event-driven) không đồng bộ (asynchronous) để có hiệu suất và sự ổn định tối đa và là lựa chọn ưa chuộng hơn Apache server. Nó có thể phục vụ các công việc như như load balancing, HTTP caching, hay sử dụng như một reverse reverse proxying, media streaming và email proxy như IMAP, POP3, và SMTP....
Vì NGINX server đáng tin cậy, tốc độ và có khả năng mở rộng lớn nên những ông lớn công nghệ dùng nó là Google, Netflix, Adobe, Cloudflare, WordPress,..đã lựa chọn NGINX
Trước khi tìm hiểu cách thức hoạt động của NGINX thì chúng ta cần biết cách web server hoạt động thế nào. Ví dụ, khi có một người nào đó gửi yêu cầu mở một trang web, trình duyệt sẽ liên lạc với server chứa website đó. Sau đó, server sẽ tìm kiếm đúng file được yêu cầu của trang đó và gửi ngược lại về cho server. Đây được xem là một loại truy vấn đơn giản nhất.
Ví dụ trên được xem như là một single thread – các bước xử lý dữ liệu được thực thi theo 1 trình tự duy nhất nhưng NGINX không hoạt động theo cách đó. NGINX thực hiện theo kiến trúc bất đồng bộ (asynchronous), hướng sự kiện (event driven) có nghĩa là các luồng tương tự được quản lý trong một tiến trình và mỗi tiến trình (process) chứa các đơn vị nhỏ hơn gọi là worker connection và cả bộ work connection này chịu trách nhiệm xử lý các threads cung cấp các yêu cầu của work process và sẽ gửi đến master process. Và cuối cùng master process sẽ trả kết quả cho những yêu cầu đó.
Nghe có vẻ đơn giản, nhưng mỗi worker connection có thể xử lý tới 1024 yêu cầu tương tự nhau. Do đó, NGINX có thể xử lý hàng ngàn yêu cầu mà không gặp trở ngại gì. Đó là lý do NGINX trở nên được tin dùng cho các trang web có nhiều yêu cầu như môi trường thương mại điện tử, trình tìm kiếm, và cloud storage.
NGINX có thể triển khai phục vụ nội dung HTTP động trên internet bằng cách sử dụng giao thức Fash CGI, SCGI cho tập lệnh, máy chủ ứng dụng WSGI hoặc các module Phusion Passenger. Ngoài ra còn đóng vai trò là bộ cân bằng tải phần mềm.
NGINX sử dụng áp dụng cách tiếp cận theo hướng sự kiện không đồng bộ thay vì các luồng để xử lý các yêu cầu. Kiến trúc hướng sự kiện cung cấp hiệu suất dễ dự đoán hơn dưới tải trọng cao. Tệp cấu hình mặc định của NGINX có dạng là NGINX.conf.
Có những phương thức xác thực như sau
>>> Xem thêm: jQuery là gì? Hướng dẫn cài đặt và sử dụng jQuery
Trong số các máy chủ web phổ biến hiện nay, Apache là một server mã nguồn mở miễn phí và còn là một trong những đối thủ của NGINX. Apache đã có từ những năm 90 và cũng có một cộng đồng người dùng ưa chuộng lớn. Một chút so sánh sau đây:
Khả năng tương thích với hệ điều hành luôn là một trong mối quan tâm mà bạn cần xem xét khi chọn phần mềm. Ngay cả NGINX và Apache đều có thể hỗ trợ chạy trên nhiều hệ điều hành hỗ trợ hệ thống Unix. Tuy nhiên, hiệu năng của NGINX trên Windows vẫn thật sự chưa tốt như trên các nền tảng khác.
Từ người dùng đầu tiên cho đến các chuyên gia thì luôn có một cộng đồng lớn có thể hỗ trợ khi gặp sự cố. Trong khi cả NGINX và Apache đều vẫn đang hỗ trợ qua email và Stack Overflow, so với Apache thiếu sự hỗ trợ từ công ty của mình.
NGINX có thể đồng thời chạy lên đến 1.000 kết nối nội dung tĩnh nhanh hơn gấp 2 lần so với Apache và tiết kiệm bộ nhớ hơn một chút. Tuy nhiên, khi so sánh song song hiệu suất của chúng khi chạy nội dung động, cả hai đều cho ra cùng tốc độ. Nhưng về NGINX thật sự là một lựa chọn tốt hơn cho những người có một trang web tĩnh.
NGINX là một web server sử dụng kiến trúc đơn luồng và mạnh mẽ, vì thế nó hoạt động hiệu quả hơn Apache server nếu được cấu hình chính xác. Vậy làm thế nào để kiểm tra và cài đặt web server này? Cùng tìm hiểu sau đây.
Nhờ vào HTTP header, bạn có thể kiểm tra website của mình có chạy NGINX hay không. Theo đó, để có thể thây HTTP header, bạn có thể sử dụng network tab trong Chrome Devtools. Nếu bạn chưa biết thao tác thì có thể tham khảo cách sau:
Ngoài ra, bạn cũng có thể dùng Gtmetrix hoặc Pingdom.
Hiện nay có 2 cách để thực hiện cài đặt NGINX, bạn có thể sử dụng package (gói) có sẵn hoặc cài đặt từ source. Mặc dù hình thức đầu tiên nhanh và dễ dàng hơn, nhưng cài đặt từ source có thể cung cấp khả năng cài đặt thêm các module khác giúp web server NGINX hoạt động mạnh mẽ hơn. Bên cạnh đó, nó còn cho phép người dùng tùy chỉnh sao cho phù hợp với nhu cầu của ứng dụng.
Để cài đặt NGINX theo gói Debian dựng sẵn, bạn chỉ cần làm:
“sudo apt-get update
sudo apt-get install nginx”
Sau khi quá trình cài đặt hoàn tất, bạn có thể kiểm tra câu lệnh trên đã cài đặt NGINX chưa bằng cách chạy lệnh sau đây:
“sudo nginx -v
nginx version: nginx/1.18.2”
Web server mới sẽ được cài đặt tại thư mục /etc/nginx/, nếu bạn mở thư mục này và bạn sẽ thấy nhiều thư mục và tệp tin con khác. Tuy nhiên, bạn chỉ cần chú ý đến tệp tin quan trọng nginx.conf và thư mực sites-available.
>>> Xem thêm: RSS là gì? Hướng dẫn cài đặt & sử dụng RSS mới nhất
upstream proserver {
server 10.10.10.9:9002;
server 10.10.10.10:9002;
}
Trong đó 2 servers là 10.10.10.9 và 10.10.10.10 đang chạy dịch vụ ở cổng 9002
server {
proxy_buffering off;
client_max_body_size 5M;
listen 9000;
location / {
proxy_pass http://proserver;
}
}
upstream proserver {
server 10.10.10.9:9002 weight=1;
server 10.10.10.10:9002 weight=2;
}
Những bài viết liên quan:
Như vậy, bài viết trên đây đã giới thiệu khái quát về NGINX, cũng như cho ta một cái nhìn tổng quan về các lợi ích, tính năng của NGIИX so với máy chủ và so sánh NGINX với Apache. Mỗi máy chủ đều có những ưu và nhược điểm riêng, tùy vào mục đích sử dụng và khả năng tương thích, mà bạn có thể thích ứng và làm việc hiệu quả.
Có thể bạn quan tâm
Cookie | Thời gian | Mô tả |
---|---|---|
cookielawinfo-checbox-analytics | 11 Tháng | |
cookielawinfo-checbox-functional | 11 Tháng | |
cookielawinfo-checbox-others | 11 Tháng | |
cookielawinfo-checkbox-necessary | 11 Tháng | |
cookielawinfo-checkbox-performance | 11 Tháng | |
viewed_cookie_policy | 11 Tháng |