Tại sao cần phải có nginx
NGINX là phần mềm mã nguồn mở để phục vụ web, reverse proxy, caching, load balancer, media streaming,… Nó bắt đầu như một web server được thiết kế để có hiệu suất và sự ổn định tối đa. Ngoài các khả năng của máy chủ HTTP. NGINX cũng có thể hoạt động như một máy chủ proxy cho email (IMAP, POP3 và SMTP). Và một trình cân bằng tải và reverse proxy cho các máy chủ HTTP, TCP và UDP.
Show
NGINX là gì?Mục tiêu đằng sau NGINX là tạo ra web server nhanh nhất và duy trì sự xuất sắc đó vẫn là mục tiêu trung tâm của dự án. NGINX luôn đánh bại Apache và các máy chủ khác trong các tiêu chuẩn đo lường hiệu suất của máy chủ web. NGINX là gì?Kể từ khi phát hành ban đầu NGINX, các trang web đã mở rộng từ các trang HTML đơn giản sang nội dung động, nhiều mặt. NGINX đã phát triển cùng với nó và hiện hỗ trợ tất cả các thành phần của Web hiện đại, bao gồm WebSocket, HTTP / 2 và phát trực tuyến nhiều định dạng video (HDS, HLS, RTMP và các định dạng khác). Lịch sử hình thànhBan đầu, Igor Sysoev đã viết NGINX để giải quyết vấn đề C10K. Một thuật ngữ được đặt ra vào năm 1999. Để mô tả những khó khăn mà các máy chủ web hiện tại gặp phải khi xử lý số lượng lớn (10K) kết nối đồng thời (C). Với kiến trúc event-driven, asynchronous, NGINX đã cách mạng hóa cách các máy chủ hoạt động trong bối cảnh hiệu suất cao. Và trở thành máy chủ web nhanh nhất hiện có. Sau khi mở nguồn cung ứng dự án vào năm 2004. Và nhận thấy việc sử dụng nó tăng theo cấp số nhân. Sysoev đồng sáng lập NGINX, Inc. để hỗ trợ tiếp tục phát triển NGINX. Và tiếp thị NGINX Plus như một sản phẩm thương mại với các tính năng bổ sung được thiết kế cho khách hàng doanh nghiệp. Ngày nay, NGINX và NGINX Plus có thể xử lý hàng trăm ngàn kết nối đồng thời. Nginx có tính năng gì?Những tính năng của máy chủ HTTP Nginx
Những tính năng máy chủ mail proxy của NginxGồm các phương pháp xác thực như sau:
Khác biệt giữa Apache Server và NGINX server là gì?Phương thức kết nối được xử lý giữa NGINX server và Apache server chính là sự khác biệt cơ bản nhất của chúng. Nếu Apache dùng cơ chế phân luồng (forked threaded) hay keep-alive để giúp người dùng luôn có một kết nối mở thì ở NGINX lại áp dụng một vòng lặp sự kiện không bị ngăn chặn (non-blocking event loop), để làm cho các kết nối vùng (pools connection) vận hành không đồng bộ bằng các tiến trình công việc. Từ đó, NGINX giúp cho CPU và RAM không gặp sự cố gì khi lượng truy cập gia tăng tại một thời điểm nào đó. Đồng thời, tại Apache server thực hiện xử lý nội dung tĩnh thông qua những cách thức dựa trên file thông thường cùng nội dung động bằng việc cho nhúng một bộ xử lý của ngôn ngữ thì NGINX chỉ có thể xử lý duy nhất nội dung tĩnh. Chính vì thế, bạn cần thực hiện cấu hình server này và bộ vi xử lý theo những giao thức mà nó được phép kết nối. Như vậy, NGINX chiếm nhiều ưu thế hơn so với Apache. NGINX gần như sở hữu đa số các tính năng của Apache. Đặc biệt, nhờ tốc độ xử lý các truy vấn tốc độ, hiệu suất sử dụng bộ nhớ trên máy chủ cũng là một điểm cộng cho NGINX. Bên cạnh đó, server này chiếm không quá nhiều Ram cùng CPU cho lượng truy vấn vô cùng khổng lồ. Hướng dẫn cài đặt NGINXĐể cài đặt NGINX, bạn có thể sử dụng 2 cách như sau:
Cách đầu tiên được nhận xét là đơn giản và nhanh chóng hơn, nhưng cài đặt từ source sẽ mang đến khả năng cài đặt thêm các module khác làm cho NGINX trở nên vượt trội hơn. Người dùng được phép tùy chỉnh sao cho phù hợp với nhu cầu của ứng dụng. Thao tác duy nhất bạn cần thực hiện để cài đặt một gói Debian dựng sẵn là:
Sau khi hoàn thành quá trình cài đặt, bạn có thể kiểm tra tất cả đã ổn hay chưa thông qua lệnh sau, sẽ hiển thị phiên bản NGINX vừa được cài đặt:
Web Server mới được cài đặt ở /etc/nginx/. Khi bạn truy cập vào thư mục này, sẽ có nhiều tệp tin cùng thư mục xuất hiện. Tuy nhiên, thứ bạn cần lưu ý nhất đó chính là tệp tin nginx.conf và thư mục Cấu hình NGINX chi tiếtDưới đây là thiết lập cần được chú ý tại tập tin nginx.conf:
Tệp tin sẽ được cấu trúc nên các ngữ cảnh. Thứ nhất là events, tiếp theo là http. Cấu trúc được nhận xét là rất có ích trong việc cấu hình, như từng ngữ cảnh sẽ được chèn trong ngữ cảnh khác. Ngoài ra, còn được thừa hưởng tất cả từ cha mẹ của chúng nhưng cũng được phép ghi đè lên chúng nếu cần thiết. Ở tập tin này bạn có thể tùy chỉnh chúng theo nhu cầu, tuy nhin bạn cũng có thể tận dụng các thiết lập mặc định. Tập tin này có một số thành phần quan trọng như sau:
Số lượng website được NGINX hỗ trợ có thể nhiều hơn 1, cùng những tệp tin định nghĩa các website của bạn nằm ở thư mục Lưu ý rằng, những tệp tin nằm ở thư mục này không “live” — bạn có thể có nhiều tệp tin định nghĩa các trang web ở đây, nhưng NGINX không tác động đến chúng cho đến khi được symlink (liên kết tượng trưng) tới thư mục Nó mang đến cho bạn giải pháp nhanh nhất đưa các website online và offilne mà không phải tiến hành xóa bỏ tập tin nào — Đến lúc bạn hoàn tất chuẩn bị cho trang web, tạo symlink đến Thư mục site-available sẽ chứa cấu hình cho các host ảo (virtual host). Tại đây, web server được phép cấu hình các website với các từng cấu hình khác nhau. Những website trong thư mục không live và và chỉ được đồng ý nếu chúng ta tạo một
symlink đến thư mục Người dùng dược phép tạo một tệp tin mới hoặc tùy chỉnh một tệp tin mặc định cho ứng dụng. Dưới đây là một cấu hình thông thường:
Tương tự Ngữ cảnh server định nghĩa một server ảo dùng để xử lý hết các request do
client yêu cầu. Sẽ có nhiều khối server, NGINX sẽ tiến hành lựa chọn trong số đó dựa theo những chỉ thị Ở mỗi khối server, chúng ta định nghĩa lượng lớn ngữ cảnh location sẽ được áp dụng để quyết định phương thức xử lý các request cho client. Theo đó, khi nhận được request, NGINX sẽ thử khớp URI tới tới những định nghĩa location và xử lý theo cách hợp lý nhất. Trong ngữ cảnh location sẽ có nhiều chỉ thị quan trọng được dùng tới, ví dụ như:
Ngữ cảnh upstream định nghĩa một pool của những server cái NGINX sẽ ủy quyền những request tới. Sau khi hoàn tất việc tạo khối upstream và định nghĩa một server nằm trong nó chúng có thể xác thực nó thông qua tên nằm trong các khối location. Ngoài ra, một ngữ cảnh upstream có thể sẽ chứa nhiều server được gán tại đó bởi vì NGINX sẽ làm một vài load balancing khi ủy quyền cho các request tới. Khởi động NGINXSau khi hoàn tất quá trình cấu hình và đưa ứng dụng website đến thư mục tương thích. Bạn đã có thể khởi động NGINX và bắt đầu sử dụng thông qua câu lệnh:
Trong trường hợp, nếu bạn cần thay đổi cấu hình chỉ cần thực hiện quá trình tải lại (không có thời gian downtime) thông qua lệnh như sau:
Kết thúc bằng việc kiểm tra trạng thái của NGINX theo cách thực hiện lệnh sau:
NGINX phục vụ webMặc dù NGINX trở nên nổi tiếng là máy chủ web nhanh nhất, kiến trúc cơ bản có thể mở rộng đã chứng minh lý tưởng cho nhiều tác vụ web ngoài việc phục vụ nội dung. Do có thể xử lý khối lượng kết nối lớn, NGINX thường được sử dụng làm reverse proxy và cân bằng tải để quản lý lưu lượng đến và phân phối đến các upstream server – mọi thứ từ máy chủ cơ sở dữ liệu đến dịch microservices. NGINX cũng thường được đặt giữa máy khách và máy chủ web thứ hai, để phục vụ như một SSL Terminator, TLS hoặc web accelerator. Hoạt động như một trung gian, NGINX xử lý hiệu quả các tác vụ có thể làm chậm máy chủ web của bạn, chẳng hạn như SSL/TLS negotiating hoặc nén và cache nội dung để cải thiện hiệu suất. Các trang web động, được xây dựng bằng cách sử dụng mọi thứ từ Node.js đến PHP, thường triển khai NGINX làm cache nội dung và reverse proxy để giảm tải cho các máy chủ ứng dụng và sử dụng phần cứng hiệu quả nhất . NGINX và NGINX Plus có thể làm gì cho bạn?NGINX Plus và NGINX đang là các giải pháp application delivery và cho thuê máy chủ web tốt nhất được sử dụng bởi các trang web có lưu lượng truy cập cao như Dropbox, Netflix và Zynga. Hơn 400 triệu trang web trên toàn thế giới dựa vào NGINX Plus và NGINX để cung cấp nội dung của họ một cách nhanh chóng, đáng tin cậy và an toàn.
>> Xem thêm: NGINX Configuration: Hướng dẫn cho người mới Lời kếtVới những thông tin trên về NGINX là gì hy vọng sẽ đem lại thêm kiến thức mới cho bạn. Nếu bạn có thắc mắc hay đóng góp ý kiến, mời bạn để lại bình luận phía dưới bài viết này. Vietnix xin chân thành cảm ơn bạn! |