GNU/Linux >> Belajar Linux >  >> Linux

Cara mengkonfigurasi beberapa situs web dengan server web Apache

Dalam posting terakhir saya, saya menjelaskan cara mengkonfigurasi server web Apache untuk satu situs web. Ternyata sangat mudah. Dalam posting ini, saya akan menunjukkan kepada Anda cara melayani beberapa situs web menggunakan satu instance Apache.

Catatan:Saya menulis artikel ini di mesin virtual menggunakan Fedora 27 dengan Apache 2.4.29. Jika Anda memiliki distribusi atau rilis Fedora lain, perintah yang akan Anda gunakan dan lokasi serta konten file konfigurasi mungkin berbeda.

Seperti yang disebutkan dalam artikel saya sebelumnya, semua file konfigurasi untuk Apache terletak di /etc/httpd/conf dan /etc/httpd/conf.d . Data untuk situs web terletak di /var/www secara default. Dengan beberapa situs web, Anda harus menyediakan beberapa lokasi, satu untuk setiap situs yang Anda host.

Hosting virtual berbasis nama

Dengan hosting virtual berbasis nama, Anda dapat menggunakan satu alamat IP untuk beberapa situs web. Server web modern, termasuk Apache, menggunakan hostname bagian dari URL yang ditentukan untuk menentukan host web virtual mana yang merespons permintaan halaman. Ini hanya membutuhkan sedikit lebih banyak konfigurasi daripada untuk satu situs.

Bahkan jika Anda memulai hanya dengan satu situs web, saya sarankan Anda mengaturnya sebagai host virtual, yang akan memudahkan untuk menambahkan lebih banyak situs nanti. Dalam artikel ini, saya akan melanjutkan dari bagian terakhir yang kita tinggalkan di artikel sebelumnya, jadi Anda harus menyiapkan situs web asli, situs web virtual berbasis nama.

Menyiapkan situs asli

Sebelum Anda membuat situs web kedua, Anda perlu mendapatkan hosting virtual berbasis nama yang berfungsi untuk situs yang ada. Jika Anda belum memiliki situs web, kembali dan buat sekarang.

Setelah Anda memiliki situs, tambahkan bait berikut ke bagian bawah /etc/httpd/conf/httpd.conf file konfigurasi (menambahkan bait ini adalah satu-satunya perubahan yang perlu Anda lakukan pada httpd.conf berkas):

<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/html
    ServerName www.site1.org
</VirtualHost>

Ini akan menjadi bait host virtual pertama, dan harus tetap menjadi yang pertama, untuk menjadikannya definisi default. Itu berarti bahwa akses HTTP ke server dengan alamat IP, atau dengan nama lain yang ditetapkan ke alamat IP ini tetapi tidak memiliki bait konfigurasi host bernama tertentu, akan diarahkan ke host virtual ini. Semua bait konfigurasi host virtual lainnya harus mengikuti yang ini.

Anda juga perlu menyiapkan situs web Anda dengan entri di /etc/hosts untuk memberikan resolusi nama. Terakhir kali, kami hanya menggunakan alamat IP untuk localhost . Biasanya, ini akan dilakukan menggunakan layanan nama apa pun yang Anda gunakan; misalnya, Google atau GoDaddy. Untuk situs pengujian Anda, lakukan ini dengan menambahkan nama baru ke localhost baris di /etc/hosts . Tambahkan entri untuk kedua situs web sehingga Anda tidak perlu mengedit file ini lagi nanti. Hasilnya terlihat seperti ini:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 www.site1.org www.site2.org

Mari kita juga mengubah /var/www/html/index.html file menjadi sedikit lebih eksplisit. Seharusnya terlihat seperti ini (dengan beberapa teks tambahan untuk mengidentifikasi ini sebagai situs web nomor 1):

<h1>Hello World</h1> 

Web site 1.

Mulai ulang server HTTPD untuk mengaktifkan perubahan pada httpd konfigurasi. Anda kemudian dapat melihat situs web menggunakan browser mode teks Lynx dari baris perintah.

[root@testvm1 ~]# systemctl restart httpd
[root@testvm1 ~]# lynx www.site1.org

                                              Hello World
  Web site 1.
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Anda dapat melihat bahwa konten yang direvisi untuk situs web asli ditampilkan dan tidak ada kesalahan yang jelas. Tekan tombol “Q”, diikuti dengan “Y” untuk keluar dari browser web Lynx.

Mengonfigurasi situs web kedua

Sekarang Anda siap untuk menyiapkan situs web kedua. Buat struktur direktori situs web baru dengan perintah berikut:

[root@testvm1 html]# mkdir -p /var/www/html2

Perhatikan bahwa situs web kedua hanyalah html kedua direktori di /var/www yang sama direktori sebagai situs pertama.

Sekarang buat file indeks baru, /var/www/html2/index.html , dengan konten berikut (file indeks ini sedikit berbeda, untuk membedakannya dari yang asli untuk situs web):

<h1>Hello World -- Again</h1> 

Web site 2.

Buat bait konfigurasi baru di httpd.conf untuk situs web kedua dan letakkan di bawah bait host virtual sebelumnya (keduanya akan terlihat sangat mirip). Bait ini memberi tahu server web tempat menemukan file HTML untuk situs kedua.

<VirtualHost 127.0.0.1:80>
    DocumentRoot /var/www/html2
    ServerName www.site2.org
</VirtualHost>

Mulai ulang HTTPD lagi dan gunakan Lynx untuk melihat hasilnya.

[root@testvm1 httpd]# systemctl restart httpd
[root@testvm1 httpd]# lynx www.site2.org

                                    Hello World -- Again

   Web site 2.

<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move.  Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list

Di sini saya telah mengompresi output yang dihasilkan agar sesuai dengan ruang ini. Perbedaan halaman menunjukkan bahwa ini adalah situs web kedua. Untuk menampilkan kedua situs web secara bersamaan, buka sesi terminal lain dan gunakan browser web Lynx untuk melihat situs lain.

Pertimbangan lain

Contoh sederhana ini menunjukkan cara menyajikan dua situs web dengan satu instance server Apache HTTPD. Mengonfigurasi host virtual menjadi sedikit lebih rumit ketika faktor-faktor lain dipertimbangkan.

Misalnya, Anda mungkin ingin menggunakan beberapa skrip CGI untuk salah satu atau kedua situs web ini. Untuk melakukan ini, Anda akan membuat direktori untuk program CGI di /var/www :/var/www/cgi-bin dan /var/www/cgi-bin2 , agar konsisten dengan penamaan direktori HTML. Anda kemudian perlu menambahkan arahan konfigurasi ke bait host virtual untuk menentukan lokasi direktori untuk skrip CGI. Setiap situs web juga dapat memiliki direktori tempat file dapat diunduh; ini juga memerlukan entri dalam stanza host virtual yang sesuai.

Situs web Apache menjelaskan metode lain untuk mengelola beberapa situs web, serta opsi konfigurasi mulai dari penyetelan kinerja hingga keamanan.

Apache adalah server web yang kuat yang dapat digunakan untuk mengelola situs web mulai dari yang sederhana hingga yang sangat kompleks. Meskipun pangsa keseluruhannya menyusut, Apache tetap menjadi satu-satunya server HTTPD yang paling umum digunakan di Internet.


Linux
  1. Cara mengkonfigurasi server web Apache

  2. Cara Menginstal Server Web Apache di Ubuntu

  3. Cara Menginstal dan mengkonfigurasi server web Apache di Ubuntu 13.10

  1. Cara Mengamankan Server Web Apache dengan Let's Encrypt di RHEL 8

  2. Cara Membuat Host Virtual Di Server Apache Untuk Meng-host Banyak Situs Web

  3. Cara menginstal server web Apache di Linux

  1. Cara Install dan Konfigurasi Apache Web Server dengan Virtual Host di Debian 10

  2. Cara Menginstal dan Mengkonfigurasi Server Web Apache di Debian 11

  3. Cara Menginstal dan Mengkonfigurasi Server Web Apache di Ubuntu