Nginx là gì? Kiến thức về NGINX lập trình viên nên nắm rõ

Admin 20 Jan 2021 2006
Nginx là một trong những web server sử dụng mã nguồn mở được ứng dụng rất nhiều trong lĩnh vực công nghệ thông tin hiện nay. Nếu như bạn đang tìm hiểu Nginx là gì cũng như các kiến thức liên quan về nó thì không nên bỏ qua những chia sẻ của ITNavi trong bài viết sau. 

Nên hiểu Nginx là gì?

Nginx là một trong những web server sử dụng mã nguồn mở vô cùng mạnh mẽ. Nó sử dụng các kiến trúc đơn luồng, hướng sự kiện nên mang lại nhiều hiệu quả hơn so với Apache server. Nginx có thể thực hiện được những việc quan trọng khác như: load balancing, HTTP caching hoặc sử dụng như một reverse proxy. Nginx được xem là kiến thức vô cùng quan trọng và không thể thiếu đối với một web developer, system administrator hay cả devops.  Nên hiểu Nginx là gì?

Nên hiểu Nginx là gì?

Vào năm 2002, thì Igor Sysoev đã phát triển Nginx ban đầu rồi công bố lần đầu tiên vào năm 2004. Đến tháng 7 năm 2011 thì công ty Nginx Inc đã được thành lập với trụ sở đầu tiên tại San Francisco, California USA. 

Các tính năng của Nginx là gì?

Hiện nay, máy chủ HTTP Nginx sở hữu nhiều tính năng nổi bật như: 
  • Tạo ra khả năng xử lý hơn đến 10.000 kết nối cùng một lúc với các bộ nhớ thấp. 
  • Hỗ trợ phục vụ các tập tin tĩnh và lập ra các chỉ mục tập tin phù hợp. 
  • Có khả năng tăng tốc reverse proxy bằng các bộ nhớ đệm giúp cân bằng tải đơn giản hơn với khả năng chịu lỗi vô cùng cao. 
  • Nginx có thể hỗ trợ tăng tốc cùng với bộ nhớ FastCGI, uwsgi, SCGI và những máy chủ memcached vô cùng hiệu quả. 
  • Kiến trúc modular cho phép bạn gia tăng tốc độ nạp trang bằng biện pháp nén gzip một cách tự động. 
  • Nginx có khả năng hỗ trợ thực hiện mã hóa SSL và TLS. 
  • Cấu hình của Nginx vô cùng linh hoạt giúp lưu lại nhật ký truy vấn một cách dễ dàng. 
  • Nginx có khả năng chuyển hướng lỗi 3XX-5XX. 
  • Rewrite URL có thể sử dụng expression. 
  • Nginx có thể hạn chế tỷ lệ đáp ứng của truy vấn. 
  • Nginx giúp giới hạn số kết nối đồng thời cũng như truy vấn từ 1 địa chỉ. 
  • Nginx có khả năng nhúng mã PERL một cách dễ dàng. 
  • Nginx có thể hỗ trợ và tương thích hoàn toàn với IPv6. 
  • Nginx có thể hỗ trợ cho websockets.
  •  Nginx hỗ trợ truyền tải các file FLV và MP4. 
Các tính năng của Nginx là gì?

Các tính năng của Nginx là gì?

Cách thức hoạt động của Nginx là gì?

Nginx hoạt động như sau:  Khi ai đó thực hiện gửi yêu cầu để mở một trang web, thì khi đó trình duyệt sẽ liên lạc đến server có chứa website đó. Sau đó, server sẽ tìm kiếm theo đúng file yêu cầu của trang web rồi gửi ngược về cho server. Đây chính là loại truy vấn đơn giản nhất từ trước đến nay.  Theo ví dụ trên thì nó sẽ được xem là một single thread, hay còn gọi là một bộ các bước xử lý dữ liệu thực thi dựa theo trình tự duy nhất. Khi đó, Web server truyền thống sẽ tạo một thread cho mỗi yêu cầu, thì Nginx hoạt động theo một cách hoàn toàn khác. Nó sẽ hoạt động dựa vào kiến trúc bất đồng bộ, hướng sự kiện. Kiến trúc này bạn có thể hiểu là các threads tương đồng với nhau giúp quản lý trong một tiến trình và mỗi một tiến trình hoạt động chưa được xem là thực tế nhỏ hơn và được gọi là worker connections. Cả bộ đơn vị này sẽ chịu trách nhiệm cho việc xử lý các threads.  Khi đó, worker connections sẽ gửi các truy vấn cho một worker process rồi worker process sẽ gửi nó tới cho process cha. Cuối cùng thì master process sẽ trả kết quả tới cho các yêu cầu đó.  Điều này đơn giản như sau, một worker connection có khả năng xử lý đến 1024 yêu cầu tương tự như nhau. Bởi vậy, Nginx sẽ xử lý hàng ngàn yêu cầu khác mà không gặp phải bất kỳ rắc rối gì. Đây chính là lý do tại sao Nginx luôn tỏ ra được nhiều hiệu quả hơn nếu như hoạt động trên môi trường thương mại điện tử, cload storage và trình tìm kiếm.  Mời bạn tham khảo một số việc làm hot nhất hiện nay Tuyển dụng việc làm java chế độ hấp dẫn Tuyển dụng mysql lương cao chế độ hấp dẫn

Nguyên lý hoạt động và tính năng mail proxy của Nginx là gì? 

Nguyên lý hoạt động

Khác với các chương trình máy chủ khác, Nginx sẽ không dựa vào luồng để thực hiện xử lý cho các truy vấn mà dựa theo kiến trúc hướng sự kiện dạng không đồng bộ với khả năng mở rộng vô cùng hiệu quả. 

Tính năng máy chủ mail proxy của Nginx là gì?

Các phương pháp xác thực của Nginx bao gồm: 
  • POP3: APOP, USER/PASS, AUTH LOGIN/PLAIN/CRAM-MD5;
  • IMAP: AUTH LOGIN/PLAIN/CRAM-MD5,  LOGIN;
  • SMTP: AUTH LOGIN/CRAM-MD5/PLAIN;
  • Hỗ trợ SSL, STLS và STARTTLS 
Nginx được sử dụng rất phổ biến hiện nay

Nginx được sử dụng rất phổ biến hiện nay

Cấu hình của Nginx là gì?

Các thiết lập quan trọng nằm trong tập tin nginx.conf sẽ mặc định với:  Tệp tin sẽ được cấu trúc thành các ngữ cảnh, đầu tiên sẽ là events và thứ 2 là http. Cấu trúc này có nhiều lợi thế trong việc cấu hình các ngữ cách để có thể lồng trong các ngữ cảnh khác. Từ đó cái kế thừa từ cha mẹ của chúng nhưng bạn vẫn có thể ghi đè thiết lập nếu bạn cần.  Có nhiều thứ nằm trong tệp này hoàn toàn có thể tinh chỉnh dựa theo nhu cầu của bạn, tuy nhiên bạn có thể sử dụng những thiết lập mặc định. Một vài phần quan trọng của các tệp tin cấu hình này sẽ là: 
  • Worker_processes: Đây là thiết lập định nghĩa số worker process mà Nginx sẽ sử dụng. Bởi vì Nginx thuộc dạng đơn luồng và nó thường bằng với số lõi CPU. 
  • Worker_connection: Chính là số lượng tối đa của các kết nối, đồng thời cho mỗi worker process và nói cho các worker process của chúng ta xem có bao người có thể được phục vụ đồng thời bởi Nginx. 
  • gzip: Đây là các thiết lập dạng nén GZIP của Nginx response. Tính năng này thường có nhiều thiết lập phụ và phần bị comment bởi mặc định có thể mặc định giúp cho hiệu suất được cải thiện đáng kể hơn. Trong các thiết lập phụ này của GZIP  bạn cần phải quan tâm đến gzip_comp_level, nó chính là mức nét nằm trong khoảng từ 1 tới 10. Thông thường giá trị này sẽ không nên lớn hơn 6, nếu trên mức này thì lợi ích của mức nén là không đáng kể bởi vì nó sẽ sử dụng  nhiều CPU hơn. Gzip_types là một trong các danh sách thuộc các kiểu response sẽ được nén. 
  • Access_log & error_log: Đây là những tệp tin mà chính Nginx sử dụng với mục đích log bất kỳ lỗi cũng như số lần truy cập. Các bản ghi lần này thường chỉ sử dụng với mục đích gỡ lỗi hoặc sửa chữa. 
Khi đó, Nginx thường hỗ trợ nhiều hơn một website và các tệp tin sẽ định nghĩa cho các trang web của bạn ở trong thư mục theo kiểu: /etc/nginx/sites-available. Tuy nhiên, những tệp tin trong thư mục này sẽ không “live và bạn sẽ có nhiều hơn những tệp tin định nghĩa cho các trang web ở đây. Nhưng, Nginx sẽ không thực sự làm bất cứ điều gì với chúng khi chúng được symlink tới các thư mục như: /etc/Nginx/sites-enabled.  Tuy nhiên, một vài tệp trong thư mục này thường không “live nên bạn có thể có nhiều hơn các trang web ở đây. Tuy nhiên, Nginx thường không thực sự làm bất cứ điều gì với chúng trừ trường hợp chúng được symlink tới thư mục này.  Nó thường cung cấp cho bạn một vài phương thức để nhanh chóng để đưa trang web online hoặc offline mà cần phải thực sự xóa được bất kỳ tệp tin nào. Khi đó, bạn sẽ có sẵn một trang web online giúp tạo ra symlink lên tới site-enabled rồi khởi động được lại Nginx.  Chính vì vậy, bạn hoàn toàn có thể tạo ra một tệp mới dành cho ứng dụng của mình hoặc thực hiện chỉnh sửa cho một tệp tin mặc định. Nginx có cách khởi động khá dễ dàng

Nginx có cách khởi động khá dễ dàng

Thông thường sẽ có nhiều chỉ thị quan trọng để bạn có thể sử dụng dưới dạng ngữ cảnh location như sau: 
  • try_files: sẽ cố gắng phục vụ được các tệp tin tĩnh sẽ được tìm thấy trong thư mục được trỏ bởi các chỉ thị gốc. 
  • proxy_pass: sẽ thực hiện gửi request tới với một proxy server cụ thể. 
  • review: sẽ viết lại các URI dựa trên một regular expression để dành lại một khối location để có thể xử lý cho nó. 

Cách khởi động Nginx là gì?

Sau khi chúng ta đã hoàn tất được các cấu hình và di chuyển cho ứng dụng web đến với thư mục phù hợp hơn thì có thể thực hiện khởi động Nginx để sử dụng lệnh sau: sudo service nginx start.  Sau đó, bất cứ khi nào thì bạn cũng có thể thay đổi được cấu hình và không cần tải lại rồi sử dụng lệnh sau: service nginx reload. Cuối cùng, bạn có thể kiểm tra trạng thái của Nginx bằng cách sử dụng lệnh sau; service nginx status. 

Tổng kết

Trên đây là toàn bộ các kiến thức liên quan đến Nginx mà chúng tôi muốn gửi tới bạn đọc. Hy vọng, với những thông tin trên thì bạn đã hiểu rõ hơn Nginx là gì cũng như biết cách khởi động và sử dụng nó.
Admin

Nguồn: Nginx là gì? Kiến thức về NGINX lập trình viên nên nắm rõ

Bài viết liên quan

NEWSLETTER

Nhập địa chỉ email của bạn dưới đây để đăng ký nhận tin mới nhất

KẾT NỐI VÀ THEO DÕI