Đang Tải...

Trang chủ
Tot Blog

Kiến thức & Tin công nghệ

NGINX là gì? Có thể sử dụng NGINX làm gì?

03/11/2023

icon

Một trong những yếu tố cơ bản của internet là máy chủ web. Những máy chủ web này là các máy tính được xây dựng để cung cấp trang web mà người dùng yêu cầu. Mỗi web server có một địa chỉ IP và một tên miền. Để biến máy tính của bạn trở thành một máy chủ web, bạn phải cài đặt phần mềm như NGINX, XAMPP, Apache, Tornado, Caddy, hoặc Microsoft Internet Information Services (IIS). Trong bài viết này, Tothost sẽ tập trung vào NGINX.

Mục lục

Mục lục

1. Giới thiệu NGINX

1.1. NGINX là gì?

NGINX là một web server mã nguồn mở có kiến trúc đơn luồng, hướng sự kiện nhằm mục đích tăng cường hiệu năng và sự ổn định. Cái tên NGINX được phát âm là “engine-x”. 

Website chính thức của NGINX: https://www.nginx.com/

Website chính thức của NGINX

Máy chủ NGINX thường được sử dụng làm server web tĩnh, máy chủ proxy, cân bằng tải (load balancing), và cũng là một giải pháp phần mềm cấu hình cao (highly configurable) để điều hướng lưu lượng (traffic) trên internet. 

Nó được đánh giá cao hơn Apache và ưa chuộng trong cộng đồng phát triển web vì hiệu suất cao, khả năng mở rộng tốt, và khả năng cấu hình linh hoạt.

 

Lịch sử của NGINX

Lịch sử của NGINX được thể hiện qua những mốc thời gian sau:

  • Khởi đầu (2002): Igor Sysoev, một kỹ sư từ Nga, đã bắt đầu phát triển NGINX vào năm 2002 khi ông làm việc tại công ty Rambler, một trang web tìm kiếm và dịch vụ thông tin lớn của Nga. Mục tiêu của ông là tạo ra một máy chủ web nhẹ và hiệu quả để giải quyết các vấn đề hiệu suất mà các máy chủ web truyền thống như Apache gặp phải.
  • Phiên bản đầu tiên (2004): NGINX phiên bản đầu tiên đã được phát hành vào tháng 10 năm 2004. Máy chủ này nhanh chóng được người dùng quan tâm nhờ hiệu suất tốt và khả năng xử lý nhiều kết nối đồng thời.
  • Trở thành Open Source (2004): NGINX đã sớm trở thành một dự án mã nguồn mở và có sự đóng góp của cộng đồng phát triển mã nguồn mở. Điều này đã giúp tăng cường tính năng và tích hợp của nó.
  • Sự phát triển và mở rộng (2000s – 2010s): NGINX đã nhanh chóng trở thành một trong những máy chủ web và máy chủ proxy phổ biến nhất trên toàn thế giới, chủ yếu do hiệu suất cao, tích hợp dễ dàng và khả năng cân bằng tải tích hợp.
  • Công ty NGINX, Inc. (2011): Công ty NGINX, Inc. đã được thành lập vào năm 2011 để hỗ trợ việc phát triển và duy trì mã nguồn mở của NGINX. Igor Sysoev và nhiều nhân viên khác đã tham gia vào công ty này.
  • Hợp nhất với F5 Networks (2019): Vào tháng 3 năm 2019, F5 Networks, một công ty chuyên về giải pháp mạng và bảo mật, đã mua lại NGINX, Inc. trong một thỏa thuận trị giá hơn 670 triệu đô la Mỹ. Tuy nhiên, NGINX vẫn tiếp tục là một dự án mã nguồn mở phát triển dưới sự quản lý của F5 Networks.

Ngày nay, NGINX là một trong những giải pháp máy chủ web và proxy phổ biến nhất trên thế giới, được sử dụng rộng rãi để cung cấp các dịch vụ web hiệu quả và cân bằng tải trong các môi trường ứng dụng và máy chủ.

NGINX là gì?

1.2. Cách hoạt động NGINX

NGINX sử dụng một kiến trúc bất đồng bộ (asynchronous) và hướng sự kiện (event driven). Điều này có nghĩa rằng nhiều luồng hoạt động trong một tiến trình, và mỗi tiến trình này chứa các đơn vị nhỏ gọi là worker connection. Các worker connection này đảm nhiệm xử lý các yêu cầu từ các tiến trình làm việc, sau đó chuyển kết quả về cho master process để hoàn tất.

Một điểm đáng chú ý là mỗi worker connection có khả năng xử lý đến 1024 yêu cầu tương tự. Điều này là một trong những ưu điểm lớn của NGINX, cho phép nó xử lý hàng ngàn yêu cầu đa dạng mà không gặp khó khăn nào. Điều này là lý do tại sao NGINX rất phù hợp cho các ứng dụng web yêu cầu độ tin cậy cao, chẳng hạn như thương mại điện tử và lưu trữ đám mây.

1.3. Tính năng của NGINX

Web Server và HTTP NGINX:

  • Có khả năng xử lý hơn 10.000 kết nối cùng lúc với bộ nhớ thấp.
  • Phục vụ tập tin tĩnh (static files) và lập chỉ mục tập tin.
  • Tăng tốc reverse proxy bằng bộ nhớ đệm (cache), cân bằng tải đơn giản và khả năng chịu lỗi.
  • Hỗ trợ tăng tốc với bộ nhớ đệm của FastCGI, uwsgi, SCGI, và các máy chủ memcached.
  • Kiến trúc modular, tăng tốc độ nạp trang bằng nén gzip tự động.
  • Hỗ trợ mã hoá SSL và TLS.
  • Cấu hình linh hoạt; lưu lại nhật ký truy vấn
  • Chuyển hướng lỗi 3XX-5XX
  • Rewrite URL (URL rewriting) dùng regular expressions
  • Hạn chế tỷ lệ đáp ứng truy vấn
  • Giới hạn số kết nối đồng thời hoặc truy vấn từ 1 địa chỉ
  • Khả năng nhúng mã PERL
  • Hỗ trợ và tương thích với IPv6
  • Hỗ trợ WebSockets
  • Hỗ trợ truyền tải file FLV và MP4

Mail Proxy Server NGINX

Các phương thức xác thực phổ biến như:

  • POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
  • IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
  • SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;
  • Hỗ trợ SSL, STARTTLS và STLS

2. So sánh Apache và NGINX

Giống nhau:

  • Chạy trên nhiều hệ điều hành của hệ thống UNIX.
  • Khả năng bảo mật tốt.
  • Cộng đồng lớn.
  • Hệ thống Mailing và diễn đàn Stack Overflow hỗ trợ.
  • NGINX kết nối với PHP; Apache ghép nối với các Module PHP-FPM có khả năng xử lý tương đồng.

Khác nhau:

Tiêu chíApacheNginx
Kiến trúcMô hình tiến trình gắn kết (multi-process)Kiến trúc bất đồng bộ (asynchronous) hướng sự kiện (event-driven)
Hiệu suấtTương đối thấp ở tải caoHiệu quả hơn ở tải cao
Câu hỏi trên kết nốiMỗi yêu cầu tạo một tiến trình hoặc luồngCó khả năng xử lý nhiều yêu cầu trong một tiến trình
Câu bằng tảiCó module mod_proxy để cân bằng tảiCân bằng tải tích hợp sẵn
Tích hợp SSLThông qua mod_sslQua ngx_http_ssl_module
Tích hợp proxyThông qua mod_proxyTthông qua ngx_http_ssl_module
Tích hợp CacheThông qua mod_cacheTích hợp sẵn
Tích hợp FastCGIModule mod_fastcgi cho việc kết nối đến ứng dụng CGIThông qua ngx_http_fastcgi_module
Tích hợp WebSocketsThông qua module của bên thứ baTích hợp sẵn
Cấu hình và hiệu chỉnhCấu hình phức tạp và cần nhiều thời gianCấu hình đơn giản, dễ hiệu chỉnh
Tiêu thụ tài nguyênTiêu thụ tài nguyên hệ thống caoTiêu thụ ít tài nguyên hệ thống

3. Hướng dẫn cài đặt NGINX

Trong bài hướng dẫn này, Tothost sẽ hướng dẫn bạn cách cài đặt NGINX trên Linux.

  • Bắt đầu bằng lệnh: sudo apt-get update
  • Tiếp theo, chạy lệnh sau: sudo apt-get install nginx
  • Sau đó, kích hoạt tường lửa của bạn bằng lệnh sau: sudo ufw enable
  • Để kiểm tra NGINX đã được cài đặt, chạy lệnh sau: nginx -v
  • Bạn có thể chạy lệnh dưới đây để kiểm tra xem NGINX có đang chạy không: sudo ufw status
    Sau khi chạy lệnh này, bạn nên thấy kết quả sau: status: active
  • Để kiểm tra xem máy chủ NGINX của bạn hoạt động bình thường hay không, chạy lệnh sau: sudo systemctl status nginx
    Nếu đúng cách, bạn sẽ thấy thông báo thành công.

4. NGINX có thể sử đụng để làm gì?

Có thể cấu hình NGINX để sử dụng như sau:

  • Web Server: Đây là chức năng phổ biến nhất do hiệu suất và khả năng mở rộng của nó.
  • Reverse Proxy Server: NGINX thực hiện điều này bằng cách định hướng yêu cầu của khách hàng đến máy chủ phía sau thích hợp.
  • Load Balancer: Nó tự động phân phối tải lưu lượng mạng mà không cần cấu hình thủ công.
  • API Gateway: Điều này hữu ích cho việc định tuyến yêu cầu, xác thực và xử lý ngoại lệ.
  • Tường lửa (Firewall) cho ứng dụng web: Điều này bảo vệ ứng dụng của bạn bằng cách lọc yêu cầu mạng đến và đi ra khỏi máy chủ của bạn.
  • Caching: NGINX hoạt động như một bộ đệm để lưu trữ dữ liệu để sử dụng cho các yêu cầu trong tương lai.
  • Bảo vệ khỏi các cuộc tấn công từ chối dịch vụ (DDoS).
  • Kurbernetes (K8s): Tự động hóa triển khai, tính tỷ lệ và quản lý ứng dụng đóng gói.
  • Side Proxy: Định hướng lưu lượng vào và ra khỏi container chạy cùng với nó.

Lời kết

Đó là tất cả những thông tin cần biết về NGINX mà Tothost muốn chia sẻ tới bạn đọc. Đây thực sự là một giải pháp vô cùng hiệu quả đối với các ứng dụng có tải cao và yêu cầu hiệu suất cao. Bên cạnh Apache, bạn có thể linh hoạt sử dụng NGINX cho những dự án của bản thân tuỳ vào những yêu cầu cụ thể. Hi vọng những kiến thức trên sẽ có thể giúp ích cho bạn. Nếu bạn tới bài viết này mà chưa nắm được về Web Server, bạn có thể theo dõi tại: Web Server là gì? Top 5 Web Server phổ biến nhất

TAG: website

TelegramCommunity
scroll top
Thông báo
Đóng