Tôi có Nginx với nhiều "dịch vụ" (trang web) được xác định. Tôi muốn từ chối quyền truy cập vào tất cả chúng đối với nhiều địa chỉ IP (chủ yếu là quốc tế), nhưng đồng thời tôi muốn "cho phép" quyền truy cập không hạn chế vào một số trang web có thể truy cập công khai. Có thể làm điều đó với Nginx miễn phí cho Windows không?
Đây là cấu trúc của tập tin cấu hình của tôi:
http {
# báo cáo phổ biến ở đây;
người phục vụ {
server_name publicsite.web;
# một số cài đặt;
chấp nhận tất cả;
}
từ chối 1.0.0.0/8;
từ chối 2.0.0.0/8;
# mọi thứ bên dưới phải bị từ chối đối với IP được liệt kê
người phục vụ {
server_name privatesite1.domain.web;
# một số cài đặt;
}
người phục vụ {
server_name privatesite99.web;
# một số cài đặt;
}
}
Tôi đã thử cấu hình như vậy, nhưng "publicsite.web" bị từ chối đối với IP được liệt kê bên dưới khối máy chủ{} của nó, tôi đoán là do chúng ở cấp độ http, mặc dù chúng được liệt kê bên dưới.
Tôi hiểu rằng tùy chọn đơn giản nhất sẽ là liệt kê tất cả các IP "từ chối" trong một tệp riêng biệt (nhân tiện đã có rồi) và đưa chúng vào bên trong mỗi khối máy chủ {} sẽ tôn trọng việc từ chối. Cho rằng có thể có tới hàng trăm khối máy chủ{} đó và hơn trăm khối mạng con IP bị từ chối, tôi e rằng cấu hình có thể trở nên phức tạp và cồng kềnh, ảnh hưởng đến hiệu suất của máy chủ.
Có tùy chọn nào tốt hơn là bao gồm cùng một danh sách IP bị từ chối trong mỗi khối máy chủ{} không?