Nginx là gì? Tổng hợp những kiến thức liên quan đến Nginx

Em vừa bị dính một trường hợp không biết chui đầu vào đâu. Ngại chết mất anh chị ạ. Cùng là dân công nghệ với nhau, em với đứa bạn đang nói chuyện “phiêu” thôi rồi, cho tới lúc nó nhắc tới thuật ngữ Nginx. Hic. Thật là em không có hiểu biết sâu về Nginx nên lúc nó nhắc tới từ này, em không tuôn ra được chữ nào. Huhu. Để phòng chống rơi vào trường hợp này thêm một lần nữa, em quyết định tìm hiểu sâu về Nginx. 
Có anh chị nào ở đây am hiểu về Nginx không, giải thích giúp em Nginx là gì và tổng hợp những kiến thức liên quan đến Nginx được không ạ? 
Em cảm ơn trước nhé!

Nginx là gì? Tổng hợp những kiến thức liên quan đến Nginx


 

Khái niệm Nginx là gì?

Nginx - một từ tiếng Anh có nghĩa tiếng Việt có nghĩa tiếng Việt là một máy chủ Web nhưng cũng có thể được dùng như một Proxy ngược, cân bằng tải, mail proxy và bộ nhớ cache HTTP. 
Nginx là một phần mềm được tạo ra bởi Igor Sysoev. Igor Sysoev xem phiên bản ban đầu giống như một câu trả lời cho vấn đề C10K – một trong những vấn đề liên quan đến hiệu suất xử lý 10.000 kết nối trong cùng một thời gian). Năm 2004, nó được phát hành công khai. Tính tới na, Nginx đã tồn tại hơn 15 năm.

Nginx có những tính năng gì?

Nginx có rất nhiều tính năng khác nhau. Dưới đây là một vài tính năng chính của nó.
+ Hỗ trợ bộ nhớ đệm của SCGI, UWSGI, FastCGI và những máy chủ Memcached được tăng tốc.
+ Hỗ trợ hoạt động mã hóa SSL và TLS.
+ Hỗ trợ trong việc tương tác với IP6v.
+ Hỗ trợ trong việc truyền tải MP4 và FLV.
+ Hỗ trợ cho WebSockets.
+ Hỗ trợ việc chuyển hướng lỗi 3XX – 5XX.
+ Giúp giảm thiểu tỷ lệ đáp ứng truy vấn.
+ Có khả năng nhúng mã PERL.
+ Có cấu hình linh hoạt giúp lưu lại nhật ký truy vấn.
+ Có khả năng xử lý bộ nhớ thấp với hơn 10.000 kết nối.
+ Lập chỉ mục tập tin và phục vụ những tập tin tĩnh.
+ Tăng tốc Reverse Proxy thông qua bộ nhớ đệm Cache đồng thời cân bằng tải đơn giản và khả năng chịu lỗi.
+ Kiến trúc Modular, tăng tốc độ nạp trang thông qua việc nén Gzip tự động.
+ Giới hạn việc truy cập từ 1 địa chỉ và số lượng kết nối.

nginx là gì

So sánh Nginx và Apache

Apache được biết đến là một trong các Webserver thuộc loại đơn giản và phổ biến nhất nhằm phát triển các dự án Website. Bắt đầu từ năm 2016. Apache nằm trong danh sách những phần mềm Webserver phổ biến nhất trên thế giới, đặc biệt Apache chiếm 46% tổng số trang web chạy trên nền tảng của nó tính từ năm 2009.
Điểm khác nhau giữa Nginx và Apache ở một số điểm sau :

Về tốc độ.

Nhắc tới đặc điểm này thì Nginx hơn hẳn và vượt trội hơn Apache rất nhiều. WordPres.org đã có một cuộc thí nghiệm cá nhân nhằm đánh giá vấn đề này. Kết quả được đưa ra là Nginx hoạt động tuyệt vời với 8000 request/giây.

Về việc sử dụng bộ nhớ của máy chủ.

Nginx sử dụng rất ít Ram và CPU. Một cuộc thí nghiệm đã đưa ra kết quả là Nginx tiêu tốn 25Mb và 10% CPU load với hơn 10 triệu lượt truy cập trong một ngày. 

Về mức độ phổ biến.

Hiện nay, Nginx ít phổ biến hơn so với Apache với nguyên nhân chính là do Nginx chỉ thích hợp trong việc phục vụ các Server riêng chứ không hề thích hợp cho Shared Hosting. Điều này dẫn tới việc mỗi lần cấu hình NginX phải load lại file config của nó trên Server khiến cho việc Server và hàng trăm website chạy cùng nhau có thể cùng chết một lúc.
Tuy nhiên nếu xét trên những website có lượng truy cập lớn thì Nginx đứng trước Apache. Những công ty lớn đang sử dụng Nginx bao gồm Facebook, Twitter, Apple, Citrix Systems, Target, Adobe, Microsoft, Intel, Intuit, Autodesk, DuckDuckGo, Cisco, Xerox, Google....

Dưới đây là tỷ lệ sử dụng Nginx và Apache.

+ Trong 100.000 site phổ biến nhất, Nginx chiếm 56,1% và Apache chiến 27,1%.
+ Trong 10.000 site phổ biến nhất, Nginx chiếm 63.2% và Apache chiếm 21.5%.
+ Trong 1.000 site phổ biến nhất, Nginx chiếm 57% và Apache chiếm 16.2%.
Như thế, Nginx đang dần được sử dụng phủ sóng hơn so với Apache. Trong tương lai, không còn quá bất ngờ khi những trang web có lượng truy cập lớn sẽ chọn Nginx thay cho Apache.

nginx là gì

Cách cài đặt Nginx như thế nào?

Việc đầu tiên bạn cần làm là tải bản Nginx dành cho Windows (Http://nginx.org/en/download.html) và giải nén nó.
Ngoài ra, bạn cũng có thể cài đặt Nginx qua các Repossitory của OS Linux, biên dịch mã nguồn Nginx... Hoặc CentOS, Ubuntu...
Sau đó bạn thực hiện những bước dưới đây :

Chạy file nginx.exe để chạy Nginx.

Ngoài ra, bạn cũng có thể khởi động Nginx sau đó stop Nginx hoặc Reload thông qua việc sử dụng lệnh qua CMD.
Nếu bạn muốn lệnh trong CMD có thể quản lý Nginx, bạn có thể đi đến thư mục Root của Nginx. Tiếp theo, bạn mở Command Prompt hoặc Run CMD như sau cd / d d:\Web\nginx.
Một số vị trí file cấu hình Nginx như sau :
/etc/nginx/nginx.conf
/usr/local/etc/nginx/nginx.conf
/usr/local/nginx/conf/nginx.conf

Sau khi bạn đã di chuyển đến thư mục Root của Nginx, bạn có thể dùng những lệnh dưới đây:

Start Nginx (Khởi động Nginx).
Nginx -s stop (Dừng Nginx).
Nginx -s quit (Thoát Nginx được sử dụng để thoát hết ứng dụng Nginx đang chạy).
Nginx -s reload (Load lại Nginx trong trường hợp bạn thay đổi cấu hình của Nginx).
Nginx -s reopen (Mở file logs).
Ngoài ra, nếu muốn tìm hiểu sâu hơn nữa về Nginx, bạn có thể tìm kiếm hai đầu sách Ebook tiếng Anh và những dịch vụ của Web Server Nginx như Ebook Nginx High Performance hay Ebook Complete Nginx Cookbook.

Làm sao để kiểm tra trang Web của bạn có đang chạy Nginx hay không?

Bạn có thể dễ dàng kiểm tra HTTP Header của máy chủ có đang chạy Nginx hay không. Thông thường bạn có thể thấy HTTP Header thông qua việc mở Network Tab có trong Chrome Devtools. Ngoài ra, bạn cũng có thể kiểm tra Header bằng những công cụ như Gtmetrix hoặc Pingdom. 
Tuy nhiên, HTTP header không phải lúc nào cũng tiết lộ máy chủ trang web ở bên dưới. 
Ví dụ nếu trang WordPress do bạn làm chủ nằm sau dịch vụ Proxy như Cloudfare thì HTTP header máy chủ sẽ hiện chữ Cloudfare.

Hy vọng bài viết này có thể giải đáp những thắc mắc của bạn về Nginx.