Tìm hiểu về Nginx

kaitoukid

Wh------
18/07/2014
26
31 bài viết
Tìm hiểu về Nginx
1. Giới Thiệu

Nginx là một máy chủ proxy ngược mã nguồn mở sử dụng phổ biến giao thức HTTP, HTTPS, SMTP, POP3 và IMAP. Nginx được sử dụng với nhiều mục đích khác nhau: Web server, Load Balance, Security and Anomymity bên cạnh đó còn sử dụng để cấu hình Buffer and Cache. Nginx tập trung vào việc phục vụ số lượng kết nối đồng thời lớn, hiệu xuất cao và sử dụng bộ nhớ thấp. Nginx được biết đến với sự ổn định cao, nhiều tính năng, cấu hình đơn giản và tiết kiệm tài nguyên.

2.png

Với những ưu điểm trên việc sử dụng Nginx sẽ giúp giảm thiểu mức độ của các cuộc tấn công ddos.

2. Reverse Proxy Server


Như chúng ta đã biết Proxy server là một máy chủ server trên internet làm nhiệm vụ chuyển tiếp, kiểm soát thông tin giữa client và server. Reverse Proxy đứng trước một server và quản lý tất cả các kết nối từ client đến server đó.


1.jpg

Cấu hình cơ bản cho phép Reverse Proxy chuyển tiếp gói tin.


2.jpg

a. Load balance

Load balance hay câng bằng tải là một kỹ thuật để phân phối khối lượng công việc đồng đều giữa hai hay nhiều máy tính, cụ thể là phân phối đồng đều công việc giữa các máy tính trong cùng một hệ thống web server.


3.jpg

Cấu hình cân bằng tải:

4.jpg

Reverse Proxy sử dụng thuật toán cân băng tải để lựa chọn Backend server nào sẽ xử lý gói tin hay yêu cầu tiếp theo.
Một số thuật toán cân băng tải:

  • Round robin: mỗi Backend server sẽ được chọn lần lượt theo thứ tự
  • Least_conn: chọn Backend server có ít connections nhất
  • Ip_hash: thuật toán này phần chia request cho mỗi Backend server dựạ trên ip của client
  • Hash: chia request cho các Backend server đựa trên mã hash mà thuật toán sinh ra tùy thuộc vào thông tin đưa vào để hash. Những thông số này được thiết lập cụ thể trong file cấu hình của Nginx.
Ngoài ra đối với những hệ thống sử dụng những Backend server có cấu hình vật lý khác nhau (tốc độ xử lý công việc khác nhau), Thiết lập cho Nginx sẽ sử dụng thêm trọng số weight thể hiện khả năng xử lý công việc của từng Backend server. Từ đó thuật toán cân bằng tải sẽ hoạt động hiệu quả hơn.

b. Security and anonymity

Mọi kết nối đến Backend server đều phải qua Reverse Proxy và được kiểm soát bởi Reverse Proxy. Với việc thiết lập các luật thông mình cho iptables, Reverse Proxy có thể trực tiếp chặn các gói tin từ client trước khi nó đến Backend server nếu có dấu hiệu tấn công. Do vậy Reverse Proxy đem lại sự an toàn và bảo mật cho Backend server.

3. Buffer and cache


a. Buffer

5.jpg

Thời gian gửi gói tin từ client đến server Backend phụ thuộc vào tốc độ chuyển gói tin từ client đến Reverse Proxy và tốc độ từ Reverse Proxy đến Backend server.

Buffer được sử dụng hiệu quả trong trường hợp tốc độ gửi gói tin từ client đến Reverse Proxy chậm hơn từ Reverse Proxy đến Backend server. Nginx sẽ lưu trữ phản hồi từ Backend server vào buffer và phản hồi dần dân lại cho client giúp giải phóng kết nối nối từ Reverse Proxy đến Backend server sớm hơn.

b. Cache

Caching là việc lưu trữ những dữ liệu kết nối cục bộ trên máy tính người dùng hay server, giúp tăng tốc truyền thông tin trên mạng. Caching rất hữu ích cho việc phục vụ những yêu cầu lặp đi lặp lại dữ liệu tĩnh hoặc dữ liệu không thường xuyên thay đổi. Lưu trữ những dữ liệu này trên Reverse Proxy hoặc client giúp giảm những yêu cầu không cần thiết đến Backend server. Nếu các thông tin không có sẵn trong bộ nhớ cache, client sẽ yêu cầu từ Backend server. Để đảm bảo tính đúng đắn của dữ liệu, Reverse Proxy hay client sẽ phải làm mới bộ nhớ cache sau mỗi khoảng thời gian định trước. Khoảng thời gian này được thiết lập trong cấu hình của Nginx.


6.jpg

4. Kết luận

Với phần giới thiệu trên hi vọng có thể giúp ích cho các bạn có thêm lựa chọn cho việc sử dụng Nginx để tăng hiệu xuất và giảm thiểu các cuộc tấn công. Phần tiếp theo tôi sẽ giới thiệu cụ thể cách cấu hình cache tăng tốc độ truy cập web, mong các bạn chú ý theo dõi.
 
Chỉnh sửa lần cuối bởi người điều hành:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Thẻ
ddos dos nginx reverse proxy server
Bên trên