NGINX là gì? Hướng dẫn cài đặt & cấu hình NGINX chi tiết

NGINX là gì? Hướng dẫn cài đặt & cấu hình NGINX chi tiết

03/03/2023 Blog, Tin tức

Với kiến trúc bất đồng bộ và khả năng mở rộng tốt, NGINX là lựa chọn hàng đầu cho việc xử lý lưu lượng truy cập web cao và đảm bảo hiệu suất cao cho các ứng dụng web phức tạp. NGINX cũng được sử dụng làm load balancer, HTTP cache, và cung cấp nhiều tính năng bảo mật như bảo vệ chống DDoS và SSL/TLS. Với sự phát triển nhanh chóng và sự hỗ trợ tuyệt vời từ cộng đồng, NGINX đã trở thành một công cụ quan trọng cho việc triển khai và quản lý các ứng dụng web trên Internet.

NGINX là gì?

NGINX là phần mềm mã nguồn mở để phân phối web, reverse proxy, lưu vào bộ nhớ đệm, cân bằng tải, phát trực tuyến đa phương tiện, v.v. Nó bắt đầu như một máy chủ web được thiết kế để có hiệu suất tối đa và ổn định. Ngoài khả năng 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à reverse proxy và cân bằng tải cho các máy chủ HTTP, TCP và UDP.

Lịch sử phát triển

Igor Sysoev ban đầu đã 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ả khó khăn mà các máy chủ web hiện tại gặp phải trong việc xử lý số lượng lớn  (10K) kết nối đồng thời (C). Với kiến trúc không đồng bộ, eventdriven, 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à chứng kiến việc sử dụng nó phát triển 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. NGINX, Inc. trở thành một phần của F5, Inc.  vào năm 2019. Ngày nay, NGINXNGINX Plus có thể xử lý hàng trăm nghìn kết nối đồng thời và cung cấp năng lượng cho nhiều trang web bận rộn nhất của Internet hơn bất kỳ máy chủ nào khác.

Kiến trúc NGINX

NGINX sở hữu kiến trúc bất đồng bộ, đó là một trong những đặc điểm làm nên sự phổ biến của nó. Cụ thể, kiến trúc bất đồng bộ của NGINX bao gồm một master process chịu trách nhiệm quản lý các worker process. Master process khởi tạo và quản lý các worker process, trong khi các worker process chịu trách nhiệm xử lý các yêu cầu của client. Với kiến trúc này, NGINX có thể xử lý đồng thời nhiều yêu cầu của client mà không gây tốn nhiều tài nguyên hệ thống.

Ngoài ra, NGINX còn hỗ trợ nhiều tính năng quan trọng như load balancing, caching, SSL/TLS, compression, và chống DDoS. Load balancing cho phép phân phối lưu lượng truy cập đến các server ứng dụng khác nhau, giúp tăng hiệu suất và độ tin cậy của hệ thống. Caching giúp tăng tốc độ truy cập bằng cách lưu trữ các phiên bản tài nguyên trên server, tránh phải tải lại từ client mỗi lần truy cập. SSL/TLS cung cấp tính năng bảo mật cho các truy cập web, còn compression giúp giảm kích thước của các tài nguyên truyền tải. Cuối cùng, chống DDoS giúp đảm bảo an toàn và tránh những cuộc tấn công từ các kẻ tấn công.

Dù vậy, kiến trúc của NGINX bao gồm một kiến trúc bất đồng bộ và hỗ trợ nhiều tính năng quan trọng, giúp nó trở thành một trong những web server và reverse proxy server phổ biến nhất trên toàn thế giới.

NGINX là gì? Hướng dẫn cài đặt & cấu hình NGINX chi tiết 2

Ưu điểm và nhược điểm của NGINX

Ưu điểm của NGINX:

  • Hiệu suất cao: Với kiến trúc bất đồng bộ và khả năng mở rộng tốt, NGINX có thể xử lý đồng thời hàng ngàn yêu cầu của client mà không ảnh hưởng đến hiệu suất.
  • Bảo mật: NGINX hỗ trợ nhiều tính năng bảo mật như SSL/TLS, chống DDoS, giúp đảm bảo an toàn cho các truy cập web.
  • Load balancing: NGINX có tính năng load balancing giúp phân phối tải truy cập đến các server ứng dụng khác nhau, giúp tăng độ tin cậy và hiệu suất của hệ thống.
  • Caching: NGINX hỗ trợ caching, giúp tăng tốc độ truy cập bằng cách lưu trữ các phiên bản tài nguyên trên server, tránh phải tải lại từ client mỗi lần truy cập.

Nhược điểm của NGINX:

  • Khả năng cấu hình phức tạp: Với nhiều tính năng và khả năng tùy biến, cấu hình của NGINX có thể trở nên phức tạp đối với người dùng mới.
  • Khó khăn trong việc debug: Vì NGINX là một web server bất đồng bộ, việc debug và phân tích lỗi có thể trở nên khó khăn đối với các nhà phát triển.
  • Yêu cầu kiến thức kỹ thuật: Để triển khai và quản lý NGINX, người dùng cần có kiến thức về kỹ thuật nhất định.

NGINX hoạt động thế nào?

NGINX được xây dựng để cung cấp mức sử dụng bộ nhớ thấp và tính đồng thời cao. Thay vì tạo các quy trình mới cho mỗi yêu cầu web, NGINX sử dụng cách tiếp cận không đồng bộ, theo hướng sự kiện, trong đó các yêu cầu được xử lý trong một luồng duy nhất.

Với NGINX, một quy trình tổng thể có thể kiểm soát nhiều quy trình công nhân. Bậc thầy duy trì các quy trình công nhân, trong khi các công nhân thực hiện xử lý thực tế. Vì NGINX không đồng bộ nên mỗi request có thể được worker thực thi đồng thời mà không block các request khác.

Một số đặc điểm phổ biến được thấy trong NGINX bao gồm:

  • Reverse proxy với bộ nhớ đệm
  • IPv6
  • Cân bằng tải
  • Hỗ trợ FastCGI với bộ nhớ đệm
  • WebSockets
  • Xử lý các tệp tĩnh, tệp chỉ mục và tự động lập chỉ mục
  • TLS / SSL với SNI

Hướng dẫn cài đặt NGINX chi tiết

Để cài đặt NGINX trên hệ thống Linux, bạn có thể làm theo các bước sau:

Bước 1: Cập nhật hệ thống Trước khi cài đặt NGINX, hãy đảm bảo rằng hệ thống của bạn đã được cập nhật với các gói phần mềm mới nhất bằng cách chạy lệnh sau:

sql

sudo apt update && sudo apt upgrade

Bước 2: Cài đặt NGINX Để cài đặt NGINX, chạy lệnh sau:

sudo apt install nginx

Bước 3: Kiểm tra trạng thái dịch vụ Sau khi cài đặt, hãy kiểm tra trạng thái dịch vụ của NGINX bằng lệnh:

lua

sudo systemctl status nginx

Nếu trạng thái dịch vụ là "active (running)" thì NGINX đã được cài đặt và chạy trên hệ thống của bạn.

Bước 4: Mở cổng trên tường lửa Nếu hệ thống của bạn đang chạy một tường lửa, hãy mở cổng 80 và 443 để cho phép truy cập HTTP và HTTPS thông qua NGINX bằng lệnh sau:

python

sudo ufw allow 'Nginx Full'

Bước 5: Kiểm tra hoạt động của NGINX Để kiểm tra hoạt động của NGINX, hãy mở trình duyệt và truy cập địa chỉ IP của hệ thống hoặc tên miền (nếu bạn đã cấu hình) trên cổng 80 hoặc 443. Nếu mọi thứ được cấu hình đúng, bạn sẽ thấy trang chào mừng của NGINX.

Đó là các bước cơ bản để cài đặt NGINX trên hệ thống Linux. Bạn có thể tùy chỉnh cấu hình NGINX để phù hợp với nhu cầu của bạn sau khi cài đặt xong.

NGINX là gì? Hướng dẫn cài đặt & cấu hình NGINX chi tiết 23

Cấu hình NGINX chi tiết

Cấu hình NGINX có thể được thực hiện trong các tệp cấu hình được lưu trữ trong thư mục /etc/nginx. Một số tệp cấu hình quan trọng của NGINX bao gồm:

  • Tệp /etc/nginx/nginx.conf: Tệp cấu hình chính của NGINX, nơi bạn có thể thêm các thiết lập chung cho toàn bộ máy chủ.
  • Tệp /etc/nginx/conf.d/default.conf: Tệp cấu hình cho máy chủ mặc định. Đây là nơi bạn có thể thêm các thiết lập cho máy chủ cụ thể.
  • Tệp /etc/nginx/mime.types: Tệp này định nghĩa các loại tệp được phục vụ bởi máy chủ và các loại MIME tương ứng của chúng.

Để cấu hình NGINX, bạn có thể sử dụng các trình soạn thảo văn bản như nano hoặc vim để sửa đổi các tệp cấu hình trên. Sau khi thay đổi cấu hình, bạn cần khởi động lại dịch vụ NGINX để các thiết lập mới có hiệu lực bằng lệnh sau:

sudo systemctl restart nginx

Sau đây là một số thiết lập cấu hình cơ bản trong NGINX:

  • Cấu hình máy chủ ảo: Máy chủ ảo cho phép bạn cấu hình nhiều trang web trên một máy chủ. Bạn có thể tạo tệp cấu hình mới trong thư mục /etc/nginx/conf.d/ và đặt các thiết lập cho mỗi máy chủ trong tệp đó.
  • Cấu hình proxy: NGINX có thể được sử dụng như một máy chủ proxy để chuyển tiếp các yêu cầu đến các máy chủ khác. Bạn có thể cấu hình proxy_pass trong tệp cấu hình để định nghĩa máy chủ hoặc cổng mà NGINX sẽ chuyển tiếp yêu cầu đến.
  • Cấu hình SSL/TLS: NGINX hỗ trợ SSL/TLS để bảo mật các kết nối HTTP và HTTPS. Bạn có thể cấu hình SSL/TLS trong tệp cấu hình để định nghĩa các chứng chỉ SSL/TLS và các tùy chọn bảo mật khác.
  • Cấu hình tăng tốc độ: Bạn có thể tăng tốc độ truy cập trang web bằng cách sử dụng các cấu hình caching trong NGINX. Các cấu hình này có thể được thêm vào tệp cấu hình

NGINX như một máy chủ web

Mục tiêu đằng sau NGINX là tạo ra máy chủ web nhanh nhất xung quanh và duy trì sự xuất sắc đó vẫn là mục tiêu trung tâm của dự án. NGINX liên tục đánh bại Apache và  các máy chủ khác trong các điểm chuẩn đo lường hiệu suất máy chủ web. Tuy nhiên, kể từ khi phát hành NGINX ban đầu, 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, gRPC và phát trực tuyến nhiều định dạng video (HDS, HLS, RTMP và các định dạng khác).

Phân biệt NGINX Apache

Cả Apache và NGINX đều là những công cụ mạnh mẽ cho việc phục vụ nội dung web. Việc chọn máy chủ web nào phù hợp cho ứng dụng của bạn phụ thuộc vào các yêu cầu cụ thể của ứng dụng và tài nguyên máy chủ có sẵn. Dưới đây là một số điểm khác nhau giữa hai máy chủ web này:

  • Kiến trúc: Apache sử dụng mô hình xử lý yêu cầu đa luồng, trong đó mỗi yêu cầu được xử lý bởi một luồng độc lập. Trong khi đó, NGINX sử dụng mô hình xử lý sự kiện, trong đó một tiến trình có thể xử lý nhiều yêu cầu cùng một lúc.
  • Hiệu suất: NGINX thường có hiệu suất tốt hơn so với Apache, đặc biệt là trong các tình huống với lượng truy cập lớn hoặc các yêu cầu tĩnh như hình ảnh và tài liệu tĩnh. Điều này là do kiến trúc xử lý sự kiện của NGINX giúp tối ưu hóa thời gian phản hồi.
  • Cấu hình: Apache có cấu hình mạnh mẽ và đa dạng hơn so với NGINX, cho phép người dùng tùy chỉnh mọi khía cạnh của máy chủ web. Trong khi đó, NGINX tập trung vào cấu hình đơn giản và dễ dàng để sử dụng.
  • Sử dụng tài nguyên: NGINX sử dụng ít bộ nhớ hơn so với Apache, vì vậy nó là một lựa chọn tốt cho các ứng dụng có lượng truy cập lớn nhưng không có nhiều tài nguyên máy chủ.
  • Hỗ trợ các ngôn ngữ khác nhau: Apache hỗ trợ nhiều ngôn ngữ lập trình như PHP, Perl và Python. Trong khi đó, NGINX chủ yếu được sử dụng để phục vụ các tài liệu tĩnh và cung cấp cơ chế proxy để kết nối với các ứng dụng back-end.

Thống kê về NGINX Apache

Apache là một máy chủ web mã nguồn mở phổ biến khác. Về số lượng thô, Apache là máy chủ web phổ biến nhất còn tồn tại và được sử dụng bởi 43.6% (giảm từ 47% vào năm 2018) của tất cả các trang web có máy chủ web đã biết, theo W3Techs. NGINX đứng thứ hai với 41,8%.

Netcraft đã thực hiện một cuộc khảo sát trên 233 triệu tên miền và cho thấy mức sử dụng Apache ở mức 31.54% và mức sử dụng NGINX là 26.20%.

NGINX là gì? Hướng dẫn cài đặt & cấu hình NGINX chi tiết 3

Trong khi Apache là tùy chọn tổng thể phổ biến nhất, NGINX thực sự là máy chủ web phổ biến nhất trong số các trang web có lưu lượng truy cập cao.

Khi bạn chia nhỏ tỷ lệ sử dụng theo lưu lượng truy cập, NGINX có quyền hạn:

  • 60.9% trong số 100,000 trang web phổ biến nhất (tăng từ 56.1% vào năm 2018)
  • 67.1% trong số 10,000 trang web phổ biến nhất (tăng từ 63.2% vào năm 2018)
  • 62.1% trong số 1,000 trang web phổ biến nhất (tăng từ 57% vào năm 2018)

Trên thực tế, NGINX được sử dụng bởi một số trang web sử dụng nhiều tài nguyên nhất còn tồn tại, bao gồm Netflix, NASA và thậm chí cả WordPress.com.

Mặt khác, việc sử dụng Apache di chuyển theo hướng ngược lại khi lưu lượng truy cập của trang web tăng lên. Nó có quyền hạn:

  • 24,0% trong số 100.000 trang web phổ biến nhất (giảm từ 27,1% năm 2018)
  • 18.8% trong số 10,000 trang web phổ biến nhất (giảm từ 21.5% vào năm 2018)
  • 16.6% trong số 1,000 trang web phổ biến nhất (tăng từ 16.2% vào năm 2018)

Nếu chúng ta xem xét các cụm từ của Google Tìm kiếm kể từ năm 2004, chúng ta có thể thấy rằng Apache đã giảm ổn định, trong khi NGINX đã chứng kiến sự tăng trưởng nhẹ.

NGINX là gì? Hướng dẫn cài đặt & cấu hình NGINX chi tiết 5

Một lần nữa, khi bạn cho rằng NGINX hoạt động tốt hơn dưới quy mô, không có gì đáng ngạc nhiên khi các trang web có lưu lượng truy cập cao chọn NGINX thay vì Apache.

Cách kiểm tra server đang chạy NGINX hay Apache

Trên hầu hết các trang web, bạn có thể chỉ cần kiểm tra tiêu đề HTTP của máy chủ để xem nó có ghi NGINX hay Apache hay không. Bạn có thể xem tiêu đề HTTP bằng cách khởi chạy tab mạng trong Chrome Devtools. Hoặc bạn có thể kiểm tra các tiêu đề trong một công cụ như Pingdom hoặc GTmetrix.

Tuy nhiên, tiêu đề HTTP có thể không phải lúc nào cũng tiết lộ máy chủ web cơ bản. Ví dụ: nếu trang web WordPress của bạn nằm sau một dịch vụ proxy như Cloudflare, tiêu đề HTTP của máy chủ sau đó sẽ cho biết cloudflare thay thế.

NGINX là gì? Hướng dẫn cài đặt & cấu hình NGINX chi tiết 7

Nhận tất cả các ứng dụng, cơ sở dữ liệu và WordPress các trang web  trực tuyến và dưới một mái nhà. Nền tảng đám mây hiệu suất cao, đầy tính năng của chúng tôi bao gồm:

  • Dễ dàng thiết lập và quản lý trong bảng điều khiển MyKinsta
  • Hỗ trợ chuyên gia 24/7
  • Phần cứng và mạng Google Cloud Platform tốt nhất, được cung cấp bởi Kubernetes để có khả năng mở rộng tối đa
  • Tích hợp Cloudflare cấp doanh nghiệp về tốc độ và bảo mật
  • Phạm vi tiếp cận khán giả toàn cầu với tối đa 35 trung tâm dữ liệu và 275 PoP trên toàn thế giới

NGINX phục vụ web

Mặ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 đã tỏ ra lý tưởng cho nhiều tác vụ web ngoài việc phân phối nội dung. Bởi vì nó có thể xử lý một khối lượng lớn các kết nối, NGINX thường được sử dụng như một reverse proxy và cân bằng tải để quản lý lưu lượng đến và phân phối nó đến các máy chủ ngược dòng chậm hơn - bất cứ thứ gì từ máy chủ cơ sở dữ liệu cũ đến các vi dịch vụ.

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 thiết bị đầu cuối SSL / TLS hoặc trình tăng tốc web. 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ư đàm phán SSL / TLS hoặc nén và lưu vào bộ nhớ đệm nội dung để cải thiện hiệu suất. Các trang web động, được xây dựng bằng bất kỳ thứ gì từ Node.js đến PHP, thường triển khai NGINX làm bộ đệm nội dung và reverse proxy để giảm tải cho các máy chủ ứng dụng và sử dụng hiệu quả nhất phần cứng bên dưới.

NGINX và NGINX Plus: giải pháp máy chủ hoàn hảo

NGINX Plus và NGINX là các giải pháp phân phối ứng dụng và máy chủ web tốt nhất trong lớp được sử dụng bởi các trang web hightraffic như Dropbox, Netflix và Zynga. Hơn 350 triệu trang web trên toàn thế giới dựa vào NGINX Plus và NGINX Open Source để phân phối nội dung của họ một cách nhanh chóng, đáng tin cậy và an toàn.

  • Là một phần mềm cân bằng tải tất cả trong một, máy chủ web, cổng API và reverse proxy được thiết kế cho các kiến trúc đám mây, NGINX giúp bạn tăng tốc cơ sở hạ tầng CNTT và nỗ lực hiện đại hóa ứng dụng của mình. NGINX Plus cung cấp các chức năng cấp doanh nghiệp cung cấp độ tin cậy và bảo mật mạnh mẽ.
  • NGINX là một công cụ đa chức năng. Với NGINX, bạn có thể sử dụng công cụ tương tự như bộ cân bằng tải, reverse proxy, bộ nhớ đệm nội dung và máy chủ web, giảm thiểu số lượng công cụ và cấu hình mà tổ chức của bạn cần duy trì. NGINX cung cấp tài liệu và  một loạt các sách điện tử, hội thảo trên web và video để giúp bạn đứng vững. NGINX Plus bao gồm hỗ trợ khách hàng phản hồi nhanh, vì vậy bạn có thể dễ dàng nhận trợ giúp chẩn đoán bất kỳ phần nào trong ngăn xếp của mình sử dụng NGINX hoặc NGINX Plus.
  • NGINX tiếp tục phát triển. Trong thập kỷ qua, NGINX đã đi đầu trong việc phát triển Web hiện đại và đã giúp dẫn đầu về mọi thứ, từ HTTP / 2 đến hỗ trợ vi dịch vụ. Khi việc phát triển và phân phối các ứng dụng web tiếp tục phát triển, NGINX Plus tiếp tục bổ sung các tính năng để cho phép phân phối ứng dụng hoàn hảo, từ hỗ trợ cấu hình bằng cách sử dụng triển khai JavaScript tùy chỉnh cho NGINX, đến hỗ trợ các modul động. Sử dụng NGINX Plus đảm bảo bạn sẽ luôn ở vị trí tiên tiến về hiệu suất web.

Kết luận

NGINX là một web server và reverse proxy server rất mạnh mẽ và được sử dụng rộng rãi trên toàn thế giới. Bên cạnh đó, NGINX còn cung cấp nhiều tính năng bảo mật như bảo vệ chống DDoS và SSL/TLS, làm cho nó trở thành một công cụ quan trọng trong việc triển khai và quản lý các ứng dụng web trên Internet. Điều này đã giúp NGINX trở thành một trong những công cụ quan trọng nhất của các nhà phát triển và quản trị viên hệ thống trong việc xây dựng và duy trì các ứng dụng web chất lượng cao và an toàn trên Internet.

Tặng miễn phí bộ Plugin 359$ giúp khách hàng tối ưu SEO website

Bộ 3 plugin TENTEN tặng hoàn toàn miễn phí cho tất cả các khách hàng gồm:

  • Rank Math Pro - Tối ưu SEO
  • WP rocket - Tăng tốc độ tải trang
  • Imagify - Nén dung lượng ảnh

Áp dụng khi Đăng ký mới Hosting/ Email Server!

Sở hữu ngay bộ 3 công cụ giúp website của bạn ONTOP GOOGLE!

NHẬN BỘ PLUGIN SEO MIỄN PHÍ TẠI ĐÂY

Các tìm kiếm liên quan đến chủ đề “NGINX”

Nginx la gì
NGINX server Install nginx Download nginx
Install nginx Ubuntu Docker nginx Proxy_set_header nginx Cmd nginx

Bài liên quan

Tin tức hưu ích với bạn

  • Cloud collaboration là gì? Top 7 công cụ cloud collaboration đáng tin cậy

    Cloud collaboration là gì? Top 7 công cụ cloud collaboration đáng tin cậy

    Blog, Tin tức 03/03/2024
  • Cloud billing là gì? Lợi ích của cloud billing trong quản lý chi phí đám mây

    Cloud billing là gì? Lợi ích của cloud billing trong quản lý chi phí đám mây

    Blog, Tin tức 02/03/2024

Bạn có bỏ lỡ tin tức nào không?

  • Cloud collaboration là gì? Top 7 công cụ cloud collaboration đáng tin cậy

    Cloud collaboration là gì? Top 7 công cụ cloud collaboration đáng tin cậy

    Blog, Tin tức 03/03/2024
  • Cloud billing là gì? Lợi ích của cloud billing trong quản lý chi phí đám mây

    Cloud billing là gì? Lợi ích của cloud billing trong quản lý chi phí đám mây

    Blog, Tin tức 02/03/2024
  • Cloud workload là gì? 8 Loại cloud workload bạn cần biết

    Cloud workload là gì? 8 Loại cloud workload bạn cần biết

    Blog, Tin tức 01/03/2024
  • Fog computing là gì? Mọi thứ bạn cần biết về fog computing

    Fog computing là gì? Mọi thứ bạn cần biết về fog computing

    Blog, Tin tức 29/02/2024