Vì sao Nginx không hỗ trợ .htaccess? Đây có thể là câu hỏi phổ biến nhất cho những ai đang sử dụng Apache làm máy chủ web (Web Server) và có ý định di chuyển đến máy chủ web Nginx. Hôm nay tôi giúp bạn giải đáp lý do vì sao mà Nginx thời điểm hiện tại không hỗ trợ và chắc chắn trong tương lai sẽ không có khái niệm .htaccess trong Nginx.
Mỗi khi Apache xử lý một yêu cầu, đầu tiên nó kiểm tra và xử lý bất kỳ tập tin .htaccess trong cùng thư mục với tập tin nó đang phục vụ. Điều này là hoàn toàn bình thường, tuy nhiên Apache còn đi sâu vào tất cả các thư mục con của một thư mục hiện tại, và trong mỗi thư mục, nó tiếp tục sẽ kiểm tra và xử lý file .htaccess trong tất cả các thư mục đó. Ví dụ:
/ /home /home/username/www /home/username/www/trangwebcuaban.com /home/username/www/trangwebcuaban.com/thumuc /home/username/www/trangwebcuaban.com/thumuc/thumuccon
Đây là cách Apache có thể xử lý các quy tắc (rule) trong file .htaccess mà không cần khởi động lại/nạp lại tải lại phần lõi (core) của mình, nhưng như bạn thấy, đó là một vấn đề gây tốn tài nguyên nghiêm trọng, đặc biệt cho các trang web lớn với hàng triệu lưu lượng truy cập. Có thể nói .htaccess là chức năng gây tốn tài nguyên và hiệu năng thuộc dạng cao của Apache. Điều này là không tốt cho tốc độ Website/Web Server. Bảng so sánh hiệu suất truy xuất file dưới đây sẽ cho các bạn thấy rõ hiệu suất của các web server:
Requests [Per Hour] | Nginx FS Stats | Nginx FS Reads | Apache FD Stats | Apache FS Reads | Comment |
1 | 1 | 1 | 6 | 4 | Single Request [Pretty much no load] |
10 | 10 | 10 | 60 | 40 | Ten Requests [Pretty much no load] |
3,600 | 3,600 | 3,600 | 21,600 | 14,400 | 1 req/sec [Very low load] |
144,000 | 144,000 | 144,000 | 864,000 | 576,000 | 40 req/sec [Moderate traffic – nothing very large] |
324,000 | 324,000 | 324,000 | 1,944,00 | 1,296,000 | 90 req/sec [Higher traffic site – not massive] |
576,000 | 576,000 | 576,000 | 3,456,000 | 2,304,000 | 160 req/sec [Pretty high traffic – still not massive though] |
Ngoài ra trên thực tế file .htaccess thực sự là không an toàn, vì nó được cung cấp như là một cách để thay đổi các thiết lập máy chủ web như cang thiệp vào cấu hình file php.ini… và trang web từ một tập tin .htaccess duy nhất mà được đặt bên trong thư mục chủ của mỗi trang web.
Trong cấu hình Nginx chúng ta có thể chỉ cho phép thì người dùng root hay ngươi dùng được ủy quyền mới được phép làm như vậy.
Như đã trình bày ở trên . htaccess ngoài cung cấp một sự linh hoạt và thuận tiện cho việc quản trị hoặc phát triển web nó còn làm giảm hiệu suất đáng kể và mở thêm một phương thức thuận tiện cho các cuộc tấn công vào trang web của bạn.
Còn Nginx là một máy chủ web có hiệu suất cao với khả năng sử dụng rất ít RAM và các tính năng quan trọng để xây dựng cơ sở hạ tầng web hiện đại và hiệu quả. Hiệu năng chính là thế mạnh, ưu điểm của Nginx so với các Web Server khác và định hướng phát triển của Nginx theo hướng chú trọng, tối ưu có hiệu năng tốt nhất có thể.
Vì vậy Nginx không hỗ trợ .htaccess
Unpublished comment
Viết câu trả lời