Memuat waktu dampak htaccess

15

Secara umum ada dua kemungkinan penanganan barang di Apache:

  • buat konfigurasi untuk folder satu per satu menggunakan file htaccess

  • untuk sepenuhnya mengundurkan diri dari htaccess dan meletakkan semua aturan ke dalam httpd.conf

Penggunaan htaccess adalah masalah waktu buka. Saya ingin tahu, seberapa mahal dalam hal waktu buka penggunaan htaccess? Apakah ada tes?

Evgeniy
sumber

Jawaban:

22

The Rekomendasi dari proyek Apache adalah:

Secara umum, Anda hanya boleh menggunakan file .htaccess ketika Anda tidak memiliki akses ke file konfigurasi server utama. ... kesalahpahaman umum adalah bahwa otentikasi pengguna dan arahan mod_rewrite harus masuk .htaccessfile.

Jadi harap atur AllowOverride Nonedan semua arahan Anda di httpd.conf utama (dan / atau subbagian yang Anda Include)


Ketika Apache tidak dikonfigurasi dengan AllowOverride NoneAnda sudah terjadi penalti kinerja (kecil), terlepas dari apakah atau tidak ada .htaccessfile yang digunakan.

Ini karena untuk setiap dan setiap apache permintaan perlu memeriksa keberadaan .htaccessfile potensial di setiap (sub-) direktori yang mengarah ke sumber daya yang diminta. Misalnya ketika file diminta keluar dari direktori / www / htdocs / example, apache harus mencari file berikut:

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

Jadi, untuk setiap akses file keluar dari direktori itu, ada 4 akses sistem file tambahan, bahkan jika tidak ada file-file itu ada. (Jika AllowOveride diatur ke /)

Panggilan sistem yang digunakan untuk itu ( man 2 stat) dengan sendirinya tidak terlalu mahal dan biasanya sistem file cache digunakan daripada polling disk yang sebenarnya, membatasi persyaratan IO yang sebenarnya, tetapi masih bisa bertambah, sebagaimana artikel ini berpendapat.


Ketika satu atau lebih .htaccessfile aktual benar-benar ada, apache masih perlu opendan membacanya (memicu operasi baca IO lain dan biasanya juga operasi penulisan IO untuk memperbarui atimeatribut sistem file ) dan menguraikannya sebelum logika di dalamnya dapat diterapkan.

Tidak seperti ketika arahan Anda berada di utama httpd.conf, yang hanya membutuhkan apache untuk menguraikannya sekali, pada saat startup, setiap .htaccessfile perlu ditafsirkan lagi untuk setiap permintaan.

Seberapa mahal, di samping operasi IO, mem-parsing file .htaccess tergantung pada kerumitannya.

Itu akan membutuhkan penentuan tolok ukur yang cermat.

HBruijn
sumber
4

Biaya tergantung pada seberapa kuat server khususnya subsistem penyimpanan I / O dan apakah ada caching yang terlibat.

Cara mengujinya adalah mengonfigurasi sistem Anda dengan .htacess dan memuatnya dengan cara yang sama seperti yang Anda lakukan pada server web mana pun. Kemudian konfigurasikan sistem tanpa .htaccess dan jalankan tes yang sama.

Bandingkan dan bandingkan hasilnya untuk sistem yang Anda konfigurasi.

user9517
sumber
1

Saya tidak percaya ada satu jawaban yang tepat untuk pertanyaan Anda. Banyak variabel yang dapat memengaruhi waktu buka htaccess:

  • Struktur folder situs: semua .htaccess di setiap folder dimuat setiap kali halaman dibuka.
  • Berapa lama file htaccess: 200 baris vs 3500 baris? ada perbedaan besar.
  • Konfigurasi .htaccess: aturan penulisan ulang dan pengalihan bisa lebih berat dari yang lain (dan bukan satu-satunya).
  • Koneksi jaringan di sisi klien dapat memengaruhi waktu buka. IMO, Anda dapat mencobanya dari lebih dari satu tempat dan mengambil waktu rata-rata seperti referensi.
  • alat pembandingan server HTTP Apache dapat membantu Anda

Info lebih lanjut:

HEDMON
sumber
1

Saya telah menguji dengan dan tanpa .htaccess dan benar-benar tidak dapat menemukan perbedaan dalam kecepatan atau overhead apa pun. Memang saya hanya menjalankan 16 situs dan ini adalah server super cepat sehingga dalam kasus saya pelacakan milidetik hampir tidak mungkin. Pada server yang menjalankan ratusan situs, overhead mungkin terlihat sehingga @Iain mengatakan tes dan lihat.

Saya pribadi melakukan semuanya menggunakan file .conf untuk host virtual dan bukan. Bahkan aturan penulisan ulang wordpress saya ada dalam file .conf saya sehingga tidak pernah bisa rusak.

MitchellK
sumber
seberapa cepat super cepat?
James Kirkby
@ James Kirkby, saya akan mengirim Anda spesifikasi server yang tepat nanti, di luar kantor sekarang. Saya menjalankan semuanya dalam wadah Proxmox. Server web saya dan 16 situs WordPress saya semuanya memiliki 91-96 di Google Pagespeed dan saya selalu masih mengutak-atik dan mengoptimalkan.
MitchellK
@JamesKirkby Ini memiliki 2 x 6 Core Processors dan Ram 64 Gb Menjalankan Ubuntu 14.04, Apache 2.4.7 dan PHP-FPM. Ini sedikit binatang catatan, saya sangat gembira dengan kinerja itu.
MitchellK