0
0
Lập trình
Admin Team
Admin Teamtechmely

Khám Phá Sức Mạnh Tiềm Ẩn của SafeLine WAF: Cân Bằng Tải và Dự Phòng

Đăng vào 2 tuần trước

• 3 phút đọc

Giới Thiệu

Nhiều lập trình viên biết đến SafeLine WAF như một tường lửa ứng dụng web miễn phí và tự host. Tuy nhiên, có một điều có thể bạn chưa biết: nhờ vào Tengine (một nhánh của Nginx), SafeLine còn có thể hoạt động như một cân bằng tải với tính năng dự phòng tự động.

Điều này có nghĩa là bạn không chỉ nhận được bảo vệ đa WAF miễn phí mà còn có thể cải thiện tính khả dụng và phân phối lưu lượng mà không cần thêm hạ tầng.

Trong bài viết này, chúng ta sẽ tìm hiểu cách mà SafeLine hoạt động như một WAF và cân bằng tải.

Mục Lục

  1. Thiết Lập Server HTTP Kiểm Tra
  2. Thiết Lập Ban Đầu SafeLine WAF
  3. Chỉnh Sửa Cấu Hình Nginx của SafeLine
  4. Xác Thực và Tải Lại Nginx
  5. Kiểm Tra Cân Bằng Tải & Dự Phòng
  6. Kết Luận
  7. Tham Gia Cộng Đồng SafeLine

1. Thiết Lập Server HTTP Kiểm Tra

Chúng tôi đã tạo hai server HTTP cơ bản để thử nghiệm. Yêu cầu duy nhất là một route /status luôn trả về 200 OK.

Dưới đây là mã Go mà chúng tôi đã sử dụng:

go Copy
package main
import (
    "os"
    "fmt"
    "net/http"
)

func Hello1Handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Tôi là 11111")
}

func Hello2Handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Tôi là 22222")
} 

func check(w http.ResponseWriter, r *http.Request){
    fmt.Fprintf(w, "check")
}

func main () {
    if len(os.Args) > 1 {
        http.HandleFunc("/hello", Hello1Handler)
        http.HandleFunc("/status", check)
        http.ListenAndServe(":8001", nil)
    } else {
        http.HandleFunc("/hello", Hello2Handler)
        http.HandleFunc("/status", check)
        http.ListenAndServe(":8002", nil)
    }
}

Chạy cả hai phiên bản của dịch vụ - một trên cổng 8001, dịch vụ còn lại trên cổng 8002.


2. Thiết Lập Ban Đầu SafeLine WAF

Trong giao diện quản trị SafeLine, hãy tạo một site mới và trỏ upstream đến một trong các server thử nghiệm (ví dụ: cổng 8001).

Kiểm tra cấu hình bằng cách gửi một vài yêu cầu - chúng nên được chuyển tiếp đúng đến server thử nghiệm đầu tiên của bạn.


3. Chỉnh Sửa Cấu Hình Nginx của SafeLine

Bây giờ là lúc chỉnh sửa cấu hình Nginx nội bộ của SafeLine để hỗ trợ cân bằng tải với kiểm tra tình trạng.

Đi đến:

Copy
/data/safeline/resources/nginx/sites-enabled

Mỗi site đã cấu hình sẽ tạo ra một file có tên theo định dạng IF_backend_*.conf.
Xác định file của site mà bạn nhắm đến (bằng cách kiểm tra cổng hoặc sử dụng cat).

Trong trường hợp của chúng tôi, file cấu hình là IF_backend_2.

Chỉnh sửa file này để định nghĩa một khối upstream bao gồm cả hai server (8001 và 8002), và thêm một server upstream để cho phép cân bằng tải dựa trên kiểm tra tình trạng.


4. Xác Thực và Tải Lại Nginx

Xác thực cấu hình của bạn:

Copy
docker exec safeline-tengine nginx -t

Nếu hợp lệ, tải lại Nginx để áp dụng các thay đổi:

Copy
docker exec safeline-tengine nginx -s reload

5. Kiểm Tra Cân Bằng Tải & Dự Phòng

Kiểm Tra Cân Bằng Tải
Với trọng số bằng nhau, SafeLine bây giờ nên phân phối lưu lượng đều giữa các server trên cổng 80018002.

Kiểm Tra Dự Phòng
Dừng dịch vụ trên cổng 8002. Tất cả lưu lượng sẽ tự động chuyển sang cổng 8001, xác nhận rằng logic dự phòng của bạn đang hoạt động như mong đợi.


Kết Luận

SafeLine không chỉ là công cụ chặn các cuộc tấn công - nó cũng có thể giúp bạn xây dựng một kiến trúc mạng bền vững hơn. Với chỉ một vài thay đổi nhỏ đối với Nginx tích hợp sẵn, bạn có thể nhận được bảo vệ đa WAF, cân bằng tải và dự phòng ngay lập tức.

Nếu bạn đã và đang chạy SafeLine, hãy thử nghiệm với nó. Bạn có thể nhận ra rằng nó không chỉ là một WAF - mà còn là một công cụ DevOps tiềm ẩn trong hệ thống của bạn.


Tham Gia Cộng Đồng SafeLine

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào