Nginx, Hành khách và Đường ray đang chạy đẹp trên Linode của tôi. Trước khi tôi khởi chạy, tôi muốn hạn chế quyền truy cập để chỉ IP của tôi mới có thể xem trang web.Làm cách nào để cho phép truy cập vào một địa chỉ IP thông qua Nginx.conf?
Tôi đã cố gắng từ chối quyền truy cập vào tất cả và cho phép truy cập chỉ IP của tôi trong Nginx. Nó từ chối truy cập vào tất cả, nhưng tôi không thể nhận được cho phép để làm việc. Tôi đã kiểm tra để đảm bảo địa chỉ IP mà tôi chỉ định trong nginx.conf là ip công khai chính xác của tôi.
Đây là nginx.conf của tôi. Tôi đã khởi động lại nginx sau khi chỉnh sửa tệp và thử nghiệm một số thay đổi khác hoạt động như mong đợi (ví dụ: tôi đã từ chối tất cả và có thể truy cập trang web, như mong đợi).
Tôi đang làm gì sai?
http {
passenger_root /path/to/passenger-3.0.11;
passenger_ruby /path/to/ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name www.foo.bar;
root /path/to/rails/public/;
passenger_enabled on;
location/{
allow my.public.ip.here;
deny all;
}
}
}
Không phải tất cả những gì quen thuộc với nginx cấu hình, nhưng bạn đã thử chuyển đổi thứ tự? Tôi sẽ tưởng tượng những gì nó đang làm là cấp quyền truy cập vào ip của bạn, và sau đó từ chối truy cập vào tất cả. IP của bạn được bao gồm trong tất cả, do đó, nó xóa cho phép. – Corbin
Thật không may là nó không hoạt động. Từ [tài liệu nginx] (http://wiki.nginx.org/HttpAccessModule): "Lưu ý rằng thứ tự từ chối/cho phép là quan trọng nhất. Nếu bạn đến từ thế giới Apache, bạn có thể bị cám dỗ nghĩ rằng bạn có thể chuyển đổi thứ tự chỉ thị truy cập và mọi thứ sẽ hoạt động. Trong thực tế nó không. Chuyển đổi thứ tự trong ví dụ trên có kết quả từ chối truy cập vào tất cả các địa chỉ. " – MrDerp