Cara mengelola host virtual dinamis dengan Apache dan modul mod_vhost_alias

- 2950
- 420
- Miss Angelo Toy
Server Web Apache memiliki kemampuan untuk melayani banyak situs web dari alamat IP yang sama, menggunakan host virtual. Setiap host virtual dapat dikonfigurasi dalam file konfigurasi server utama, atau, berkat Termasuk
atau Termasuk opsional
arahan, dengan sendirinya. Ketika jumlah host virtual meningkat, manajemen mereka mulai merepotkan. Jika konfigurasi mereka sangat mirip, kami dapat mengelolanya secara dinamis, berkat mod_vhost_alias
modul. Dalam tutorial ini kita akan melihat bagaimana melakukannya.
Dalam tutorial ini Anda akan belajar:
- Apa itu host virtual apache
- Cara memeriksa apakah modul mod_vhost_alias diaktifkan
- Cara memuat modul mod_vhost_alias pada keluarga distribusi Debian dan Red Hat
- Cara mengelola host virtual dinamis menggunakan modul mod_vhost_alias

Persyaratan dan konvensi perangkat lunak yang digunakan
Kategori | Persyaratan, konvensi atau versi perangkat lunak yang digunakan |
---|---|
Sistem | Distribusi Independen |
Perangkat lunak | Server Web Apache |
Lainnya | Izin root |
Konvensi | # - mensyaratkan Linux -Commands untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah$-mensyaratkan Linux-Commands untuk dieksekusi sebagai pengguna reguler yang tidak istimewa |
Tinjauan Host Virtual Cepat
Seperti yang telah kami sebutkan dalam pendahuluan, server web Apache memiliki kemampuan untuk melayani banyak situs web menggunakan host virtual dan konfigurasi DNS yang tepat. Yang di bawah ini adalah definisi host virtual minimal namun khas:
SERVERNAME www.tes.Uji Lan Serveralia.LAN Documentroot/var/www/www.tes.lan
Konfigurasi ini akan mengelola permintaan pengguna ke www.tes.lan
alamat, yang merupakan nilai yang kami tetapkan dengan Nama server
arahan, tetapi juga untuk tes.lan
, yang mana Serveralias
. Dengan Root document
Petunjuk Kami mengatur direktori dasar dari mana file yang terkait dengan host virtual harus dilayani, yang dalam hal ini /var/www/www.tes.lan
.
Host virtual dapat didefinisikan dalam file konfigurasi server utama (/etc/httpd/conf/httpd.conf
pada keluarga distribusi Red Hat, /etc/apache2/apache2.conf
pada sistem Debian dan turunannya), atau dapat ditulis dalam file sendiri dan disertakan dari konfigurasi utama. Memang, jika kita melihat konfigurasi Apache pada distribusi Linux utama, kita dapat melihat bahwa file host virtual disertakan melalui Termasuk opsional
Petunjuk dari beberapa direktori tertentu.
Pada fedora dan distribusi terkait, misalnya, kami menemukan konfigurasi berikut di akhir file:
# Muat file konfigurasi di "/etc/httpd/conf.D "direktori, jika ada. Termasuk conf.D/*.conf
Di Debian, sebagai gantinya:
# Sertakan konfigurasi virtual host: sertakan situs-diable/*.conf
Kita dapat melihat bahwa jalur dari mana file harus dimasukkan, relatif terhadap root server. Itu Termasuk opsional
Petunjuk digunakan untuk memasukkan file host virtual yang harus dinamai dengan .conf
akhiran. Di sini Termasuk
Petunjuk juga dapat digunakan; Apa perbedaan antara keduanya? Keduanya bekerja persis dengan cara yang sama, Termasuk opsional
Petunjuk, bagaimanapun, tidak menyebabkan kesalahan ketika wildcard digunakan (seperti dalam kasus ini) dan tidak ada kecocokan yang ditemukan, atau jika jalur tidak ada, secara umum.
Agar pengaturan ini berfungsi, entri DNS yang tepat juga harus dikonfigurasi. Namun, jika bekerja secara lokal, kami bisa menambahkan garis di /etc/host
mengajukan. Misalnya:
127.0.0.1 www.tes.lan
Saat konfigurasi host virtual mulai meningkat, manajemen mereka dapat dengan mudah menjadi merepotkan. Solusi yang mungkin untuk masalah ini adalah menggunakan host virtual yang dihasilkan secara dinamis. Mari kita lihat bagaimana melakukannya dengan mod_vhost_alias modul.
Memuat modul mod_vhost_alias
Hal pertama yang harus kami lakukan adalah memeriksa apakah mod_vhost_alias modul diaktifkan. Perintah yang ingin kami jalankan untuk tujuan ini tergantung pada distribusi yang kami gunakan. Pada Fedora dan distribusi keluarga Red Hat lainnya, kita dapat menggunakan yang berikut:
$ httpd -m | grep -i vhost_alias
Di Debian, sebagai gantinya:
$ apachectl -m | grep -i vhost_alias
Dengan melewati -M
opsi ke httpd
(atau Apachectl
) Perintah, kami mendapatkan daftar modul statis dan bersama yang dimuat; menyalakan output ke grep kita dapat memeriksa apakah modul yang kita butuhkan ada di dalamnya. Jika modul tidak dimuat, pada Debian dan turunannya, kami dapat menjalankan perintah berikut:
$ sudo a2enmod vhost_alias && sudo systemctl restart apache2
Itu A2Enmod
perintah tidak membuat tautan simbolik ke /etc/apache2/mods-available/mod_vhost_alias.Jadi
file ke /etc/apache2/mods-enabled
direktori (mirip dengan apa a2ensite
Perintah tidak untuk konfigurasi host virtual), di mana modul dimuat dari.
Pada Keluarga Distribusi Red Hat, daftar modul dasar yang dimuat ada di /etc/httpd/conf.modul.D/00-base.conf
mengajukan. Setiap modul dimuat dengan LoadModule
pengarahan. Jika karena alasan tertentu vhost_alias
Baris modul (67) dikomentari, cukup hapus komentar, simpan modifikasi, dan muat ulang layanan httpd:
$ sudo systemctl restart httpd
Setelah modul diaktifkan, kami dapat melanjutkan dengan konfigurasi yang sebenarnya.
Membuat host virtual dinamis
Pengaturan yang kami buat didasarkan pada fakta bahwa mod_vhost_alias Modul Menyimpan Komponen yang Dipisahkan Dot dari Nama Host Virtual yang Diminta Di Dalam Beberapa Variabel Kami Dapat Mengganti dan Menginterpolasi dalam String yang Kami Gunakan untuk Menentukan Root Dokumen Host Virtual. Jika kita mengambil www.tes.lan
Virtual Host sebagai contoh, kami akan memiliki:
- %0: Seluruh nama host virtual
- %1: "www"
- %2: "Tes"
- %3: "LAN"
Angka negatif juga dapat digunakan, jadi, misalnya, kita akan memiliki:
- %-1 Bagian terakhir dari nama, dalam hal ini "LAN"
- %-2 Bagian kedua dari belakang, dalam hal ini "tes"
Bahkan mungkin untuk menentukan setiap komponen nama host virtual dari port tertentu ke depan atau ke belakang. Misalnya, %2+
berarti "dari bagian kedua dan seterusnya" dan %-2+
'Menyebabkan komponen kedua dari belakang dan semua komponen yang mendahului itu dimasukkan.
Seandainya kita ingin menggunakan /var/www/
Direktori sebagai dasar dari semua host virtual kami, kami dapat membuat konfigurasi berikut dalam sebuah file, sebut saja Dynamic_vhost.conf
:
Usecanonicalname off virtualdocumentroot "/var/www/%-2"
Mari kita jelaskan konfigurasi di atas. Pertama -tama kami menggunakan UsecanonicalName
Petunjuk dan mengaturnya ke "off": kami melakukan ini untuk memastikan bahwa nama server diambil dari header "host:" dalam permintaan http. Kami daripada menggunakan VirtualDocumentroot
pengarahan. Petunjuk ini diperlukan untuk mengatur jalur dinamis untuk root dokumen host virtual, dengan menggunakan variabel yang kami lihat di atas yang dievaluasi saat mengelola permintaan.
Ketika www.tes.lan
host virtual diminta, secara otomatis file yang akan dilayani untuk itu akan dicari di dalam /var/www/tes
direktori. Penggunaan %-2
Indeks negatif memiliki keuntungan bahwa pengaturan akan berfungsi keduanya www.tes.lan
dan untuk tes.lan
, karena bekerja mundur.
Ini jelas hanya contoh dari apa yang dapat dicapai dengan menggunakan mod_vhost_alias modul, dan Anda dapat membuat konfigurasi yang lebih cocok untuk Anda.
Kerugian
Pengaturan semacam ini cukup praktis jika semua host virtual yang kami kelola cukup mirip dan memerlukan pengaturan yang sama, tetapi memiliki kelemahannya, yang bisa sangat relevan tergantung pada situasinya. Pertama-tama, tidak mungkin untuk menentukan pengaturan khusus virtualhost, jika tidak dengan menggunakan .file htaccess); Pengaturan semacam ini juga akan menyebabkan masalah jika digunakan bersama dengan konfigurasi host virtual standar. Akhirnya, permintaan untuk semua host virtual akan dicatat dalam file yang sama.
Kesimpulan
Server Web Apache dapat melayani banyak situs web dan sumber daya dari satu mesin berkat penggunaan host virtual. Ketika jumlah host virtual mulai meningkat jumlahnya, itu bisa menjadi sulit untuk mengelolanya jika masing -masing memiliki file/bagian konfigurasi sendiri. Jika mereka memiliki pengaturan yang sama, kami dapat menjelaskan masalah ini dengan menggunakan host virtual yang dihasilkan secara dinamis, memanfaatkan mod_vhost_alias modul.
Pada artikel ini kami melihat cara memeriksa apakah modul ini diaktifkan dan cara mengaktifkannya dalam keluarga distribusi Debian dan Red Hat. Kami juga melihat bagaimana komponen nama host virtual disimpan dalam variabel, dan cara menggunakannya untuk membuat host virtual dinamis. Akhirnya, kami melihat apa kelemahan menggunakan pengaturan ini.
Tutorial Linux Terkait:
- Cara memigrasikan Apache ke nginx dengan mengonversi virtualhosts ke ..
- Firefox di Linux - Koneksi Anda tidak aman
- Membandingkan Linux Apache Prefork vs Pekerja MPM
- Hal -hal yang harus diinstal pada ubuntu 20.04
- Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
- Cara menginstal ubuntu 20.04 di VirtualBox
- Daftar Alat Linux Kali Terbaik untuk Pengujian Penetrasi dan ..
- Apache IP dan host virtual berbasis nama dijelaskan
- Pengantar Otomatisasi Linux, Alat dan Teknik
- Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
- « Cara Mengkonfigurasi NFS di Linux
- Cara mengedit file sistem dengan sudoedit melestarikan lingkungan pengguna yang memohon »