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.

.htaccess hoạt động như thế nào

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 StatsNginx FS ReadsApache FD StatsApache FS ReadsComment
11164Single Request  [Pretty much no load]
1010106040Ten Requests    [Pretty much no load]
3,6003,6003,60021,60014,4001 req/sec           [Very low load]
144,000144,000144,000864,000576,00040 req/sec         [Moderate traffic – nothing very large]
324,000324,000324,0001,944,001,296,00090 req/sec         [Higher traffic site – not massive]
576,000576,000576,0003,456,0002,304,000160 req/sec       [Pretty high traffic – still not massive though]

.htaccess thực sự là không an toàn

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.

Tại sao Nginx không hỗ trợ .htaccess?

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

Viết câu trả lời

Drop Images

0 Bình luận