Nginx là gì? Tìm hiểu toàn tập về Nginx
18 Nov, 2021 admin
Bạn đang tìm kiếm một giải pháp xử lý nhiều kết nối đồng thời, Nginx sẽ là một lựa chọn không làm bạn thất vọng. Nếu bạn đang lưỡng lự với việc ra quyết định, TinoHost mời bạn cùng tham khảo bài viết bên dưới để hiểu rõ hơn về những khái niệm của Nginx.
Nginx là gì?
Nginx là một máy chủ proxy ngược mã nguồn mở (open source reverse proxy server) sử dụng phổ biến giao thức HTTP, HTTPS, SMTP, POP3 và IMAP.
Nginx thường được chọn để cân bằng tải (load balancer), HTTP cache và máy chủ web (web server). NGINX là một web server mạnh mẽ và sử dụng kiến trúc đơn luồng, hướng sự kiện vì thế nó hiệu quả hơn Apache server nếu được cấu hình chính xác.
Ngày càng được ưa chuộng và có mặt trên khắp các máy chủ Linux, Nginx hiện nay được sử dụng bởi 1- 4% tổng số lượng tên miền toàn thế giới, điển hình là Facebook, Microsoft, Google, Apple,…
Nginx ra đời và phát triển như thế nào?
Năm 2002, Igor Sysoev phát triển Nginx ban đầu và công bố lần đầu vào năm 2004. Tháng 7 năm 2011, công ty Nginx Inc được thành lập với trụ sở đầu tiên tại San Francisco, California, USA.
Nguyên lí hoạt động của Nginx
Không giống như các chương trình máy chủ khác, Nginx không dựa vào luồng (threads) để xử lý các truy vấn (request) mà theo kiến trúc hướng sự kiện (event-driven) không đồng bộ (asynchronous) và có khả năng mở rộng.
Nginx có tính năng gì?
Những tính năng của máy chủ 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
Những tính năng máy chủ mail proxy của Nginx
Các phương pháp xác thực :
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
Ưu nhược điểm của Nginx
Ưu điểm
- Nginx cung cấp cơ chế bộ nhớ đệm tốt hơn so với các máy chủ khác, giúp tăng hiệu suất của ứng dụng khi người dùng truy cập cùng một địa chỉ trong một khoảng thời gian ngắn.
- Nginx là máy chủ web trọng lượng nhẹ chuyển tiếp các yêu cầu người dùng đến máy chủ ứng dụng.
- Quy tắc ghi lại của Nginx mang lại sự linh hoạt hơn để định cấu hình chuyển hướng vĩnh viễn hoặc chuyển hướng tạm thời cho một số URL.
- Nginx hoạt động tốt nhất khi được làm máy chủ proxy giao diện người dùng cho bất kỳ ứng dụng nào.
- Nginx có thể dễ dàng tùy chỉnh, dễ dàng phân phối qua HTTPS, có thư mục tùy chỉnh hoặc máy chủ ngược dòng proxy.
Nhược điểm
- Cân bằng tải là thứ mà Nginx cần cải thiện nhiều hơn so với các máy chủ khác.
- Giám sát của Nginx được đánh giá là tốt, nhưng chưa phải tốt nhất. Tức là Nginx phải cung cấp tính linh hoạt hơn trong việc định cấu hình nhiều tình huống hơn.
- Nginx cần cải thiện cơ chế lưu trữ, cung cấp các lệnh để có được đầu ra mong muốn từ các bản ghi.
- Rất khó để điều hướng giữa trang chủ Nginx và bộ phận hỗ trợ khách hàng.
Sự khác biệt giữa Nginx và Apache
- Apache là máy chủ HTTP mã nguồn mở, trong khi Nginx là máy chủ web không đồng bộ hiệu suất cao và máy chủ proxy ngược.
- Hỗ trợ, sửa lỗi và phát triển ứng dụng của Apache được quản lý và duy trì bởi cộng đồng người dùng trên khắp thế giới. Việc hỗ trợ và bảo trì của Nginx được thực hiện bởi một doanh nghiệp chủ quản.
- Sự khác biệt giữa cách xử lý yêu cầu khách hàng. Apache cung cấp nhiều Mô-đun đa xử lý các yêu cầu của máy khách và lưu lượng truy cập web, nhưng Nginx được thiết kế để xử lý nhiều yêu cầu của máy khách đồng thời với tài nguyên phần cứng tối thiểu
- Với Apache, một luồng chỉ được liên kết với một kết nối, trong khi Nginx có thể xử lý nhiều kết nối.
- Apache có kiến trúc đa luồng nhưng thiếu khả năng mở rộng. Mặt khác, Nginx tuân theo phương pháp tiếp cận hướng sự kiện không đồng bộ để xử lý nhiều yêu cầu của khách hàng.
- Apache cung cấp nội dung tĩnh bằng các phương pháp thông thường và xử lý nội dung động trong máy chủ web. Nginx thiếu khả năng xử lý nội dung trong nội bộ, dựa vào quy trình bên ngoài để thực thi.
Hạn chế của Nginx
Không support .htaccess
Cách cài đặt Nginx
Bước 1: Tải bản Nginx cho Windows ở link http://nginx.org/en/download.html và giải nén.
Bước 2: Chạy Nginx bằng cách chạy file nginx.exe.
Bạn cũng có thể sử dụng lệnh qua cmd để khởi động Nginx, reload hoặc stop Nginx.
Bước 3: Để quản lý Nginx bằng lệnh trong cmd, bạn nên đi đến thư mục root của Nginx, mở Command Prompt hoặc run cmd:
cd /d d:Webnginx
Sau khi đã di chuyển đến thư mục root của Nginx, bạn có thể sử dụng các lệnh sau:
start nginx
# Khởi động Nginx
nginx -s stop
# Dừng nginx
nginx -s quit
# Thoát Nginx, cái này là thoát hết ứng dụng Nginx đang chạy
nginx -s reload
# Load lại nginx khi bạn thay đổi cấu hình của Nginx
nginx -s reopen
# Mở file logs
Bước 4: Sau khi khởi động Nginx, bạn hãy vào http://localhost
Ở bài viết trên, TinoHost đã trình bày những thông tin sơ lược về Nginx, bạn có thể hiểu phần nào đó các quy tắc và nguyên lý hoạt động của Nginx. Mỗi máy chủ đều có những ưu và nhược điểm khác nhau, tùy thuộc vào nhu cầu, bạn có thể tìm hiểu và vận dụng một cách hiệu quả. Với nhiều tính năng mở rộng, Nginx có thể là một cách tuyệt vời để phục vụ ứng dụng của bạn!
Nginx có tốt hơn Apache không?
Về tốc độ, cung cấp nội dung tĩnh, số lượng kết nối đồng thời, hỗ trợ điều hành, bảo mật và tính linh hoạt thì Nginx tốt hơn nhiều so với Apache.
Quy trình Worker trong Nginx là gì?
Quy trình Worker là một quy trình đơn luồng, được sử dụng để điều chỉnh hiệu suất của máy chủ Nginx. Nếu Nginx đang thực hiện công việc đòi hỏi quá nhiều CPU như SSL hoặc gzipping và bạn có 2 CPU trở lên, bạn có thể đặt worker_processes bằng số CPU.
Chỉ thị sub_filter trong Nginx là gì?
Các lệnh sub_filter được sử dụng để tìm kiếm và thay thế nội dung theo phản hồi, thực hiển chỉnh sửa nhanh các nội dung cũ.
Bộ xử lý chính trong Nginx là gì?
Bộ xử lý chính trong Nginx thực hiện các hoạt động đặc quyền như đọc cấu hình và liên kết với các cổng.
Mọi thắc mắc và góp ý liên quan, xin vui lòng liên hệ ngay TinoHost để được tư vấn chi tiết hoặc Fanpage để cập nhật những thông tin mới nhất nhé!
Với bề dày kinh nghiệm hơn 5 năm cung cấp hosting, dịch vụ cho thuê máy chủ, các dịch vụ liên quan đến tên miền và bảo mật website, hãy để TinoHost đồng hành cùng bạn trên con đường khẳng định thương hiệu trên bản đồ công nghệ toàn cầu!
CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
- Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn, Phường Bến Nghé, Quận 1, Thành phố Hồ Chí Minh
Văn phòng đại diện: 42 Trần Phú, Phường 4, Quận 5, Thành phố Hồ Chí Minh - Điện thoại: 0364 333 333
Tổng đài miễn phí: 1800 6734 - Email: [email protected]
- Website: www.tino.org