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.
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 đó.
Cấu hình cơ bản cho phép Reverse Proxy chuyển tiếp gói tin.
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.
Cấu hình cân bằng tải:
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:
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
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.
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.
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.
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 đó.
Cấu hình cơ bản cho phép Reverse Proxy chuyển tiếp gói tin.
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.
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.
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
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.
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: