Tải thời gian tác động của htaccess


15

Nhìn chung có hai khả năng xử lý công cụ trên Apache:

  • tạo cấu hình cho các thư mục từng cái một bằng cách sử dụng tệp htaccess

  • để hoàn toàn từ chức htaccess và đặt tất cả các quy tắc vào httpd.conf

Việc sử dụng htaccess là một vấn đề thời gian tải. Tôi muốn biết, sử dụng htaccess đắt như thế nào về thời gian tải? Có xét nghiệm nào không?

Câu trả lời:


22

Các khuyến nghị từ các dự án Apache là:

Nói chung, bạn chỉ nên sử dụng các tệp .htaccess khi bạn không có quyền truy cập vào tệp cấu hình máy chủ chính. ... Một quan niệm sai lầm phổ biến là xác thực người dùng và chỉ thị mod_rewrite phải có trong .htaccesstệp.

Vì vậy, vui lòng đặt cả AllowOverride Nonevà tất cả các chỉ thị khác của bạn trong httpd.conf chính (và / hoặc các phần phụ bạn Include)


Khi Apache không được cấu hình với AllowOverride Nonebạn, đã xảy ra một hình phạt hiệu suất (nhỏ), bất kể thời tiết hay không .htaccesssử dụng bất kỳ tệp nào.

Điều này bởi vì đối với mỗi và mọi apache yêu cầu sẽ cần kiểm tra sự hiện diện của một .htaccesstệp tiềm năng trong mọi thư mục (phụ) dẫn đến tài nguyên được yêu cầu. Ví dụ: khi một tệp được yêu cầu ra khỏi một thư mục / www / htdocs / ví dụ, apache phải tìm các tệp sau:

/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess

Và do đó, đối với mỗi tệp truy cập ra khỏi thư mục đó, có 4 quyền truy cập hệ thống tệp bổ sung, ngay cả khi không có tệp nào trong số đó xuất hiện. (Nếu AllowOveride được đặt cho /)

Cuộc gọi hệ thống được sử dụng cho chính nó ( man 2 stat) không tốn kém và thông thường bộ đệm của hệ thống tệp được sử dụng thay vì bỏ phiếu cho đĩa thực tế, hạn chế các yêu cầu IO thực tế, nhưng vẫn có thể bổ sung, như bài viết này lập luận.


Khi một hoặc nhiều .htaccesstệp thực sự có mặt, apache vẫn cần openvà đọc nó (kích hoạt một hoạt động đọc IO khác và thường là thao tác ghi IO để cập nhật atimethuộc tính hệ thống tệp ) và phân tích cú pháp trước khi có thể áp dụng logic đó.

Không giống như khi các chỉ thị của bạn nằm trong chính httpd.conf, chỉ cần apache để phân tích chúng một lần, khi khởi động, mỗi .htaccesstệp cần được giải thích lại cho mỗi và mọi yêu cầu.

Làm thế nào đắt tiền, ngoài các hoạt động IO, phân tích tệp .htaccess phụ thuộc vào độ phức tạp của chúng.

Điều đó sẽ mất điểm chuẩn cẩn thận để xác định.


4

Chi phí phụ thuộc vào mức độ mạnh mẽ của máy chủ cụ thể là hệ thống con I / O lưu trữ và liệu có bất kỳ bộ nhớ đệm nào liên quan hay không.

Cách để kiểm tra nó là cấu hình hệ thống của bạn với .htacess và tải thử nghiệm nó giống như bất kỳ máy chủ web nào. Sau đó cấu hình hệ thống mà không có .htaccess và chạy các bài kiểm tra tương tự.

So sánh và đối chiếu các kết quả cho các hệ thống được cấu hình của bạn .


1

Tôi không tin có một câu trả lời đúng cho câu hỏi của bạn. Có nhiều biến số có thể ảnh hưởng đến thời gian tải htaccess:

  • Cấu trúc thư mục trang web: tất cả .htaccess trong mỗi thư mục được tải mỗi khi trang được mở.
  • Tệp htaccess dài bao nhiêu: 200 dòng so với 3500 dòng? Có một sự khác biệt lớn.
  • Cấu hình .htaccess: quy tắc viết lại và chuyển hướng có thể nặng hơn các quy tắc khác (và không phải là quy tắc duy nhất).
  • Kết nối mạng ở phía máy khách có thể ảnh hưởng đến thời gian tải. IMO, bạn có thể thử nó từ nhiều nơi và dành thời gian trung bình như một tài liệu tham khảo.
  • ab - Công cụ đo điểm chuẩn máy chủ HTTP Apache có thể giúp bạn

thêm thông tin:


1

Tôi đã thử nghiệm có và không có .htaccess và thực sự không thể tìm thấy sự khác biệt nào về tốc độ hay chi phí. Cứ cho là tôi chỉ chạy 16 trang và đó là một máy chủ siêu nhanh nên trong trường hợp của tôi, việc theo dõi mili giây là gần như không thể. Trên một máy chủ chạy hàng trăm trang web, chi phí có thể đáng chú ý để @Iain nói thử nghiệm và xem.

Cá nhân tôi làm mọi thứ bằng cách sử dụng tệp .conf cho máy chủ ảo chứ không phải .htaccess, nó mang lại cho tôi quyền kiểm soát tuyệt đối mọi thứ, nó sạch hơn và được tải một lần vào bộ nhớ của apache. Ngay cả các quy tắc viết lại wordpress của tôi cũng nằm trong các tệp .conf của tôi để nó không bao giờ bị hỏng.


siêu nhanh là bao nhiêu
James Kirkby

@James Kirkby Tôi sẽ gửi cho bạn thông số kỹ thuật máy chủ chính xác sau, ra khỏi văn phòng ngay bây giờ. Tôi đang chạy mọi thứ trong các thùng chứa Proxmox. Tất cả máy chủ web và 16 trang web WordPress của tôi đều có 91-96 trên Google Pagespeed và tôi vẫn luôn tinh chỉnh và tối ưu hóa.
MitchellK

@JamesKirkby Nó có 2 x 6 Bộ xử lý lõi và 64 Gb Ram chạy Ubuntu 14.04, Apache 2.4.7 và PHP-FPM. Đó là một con thú nhỏ đáng chú ý, tôi ngây ngất với hiệu suất của nó.
MitchellK
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.