GNU/Linux >> Belajar Linux >  >> Linux

Dasar-dasar Vhost

Artikel ini memperkenalkan Anda tentang dasar-dasar vhost dan server web. Server web menjalankan perangkat lunak untuk memproses halaman web. Setelah lalu lintas web mencapai server, ikuti langkah-langkah untuk mencapai situs web yang tepat. Jika server menyajikan konten web, Anda perlu menginstal server web.

Periksa status server web

Server web paling umum yang berjalan di Linux® adalah Apache®(httpd atau apache2 ) dan NGINX®. Anda mungkin juga memiliki Plesk®. Anda dapat menggunakan Plesk untuk mengelola situs web Anda dengan gaya Windows® yang lebih tunjuk dan klik. Jika Anda menginstal Plesk, gunakan sisa artikel ini, ikhtisar vhosts karena Anda perlu menggunakan Plesk alih-alih baris perintah Linux untuk melakukan tugas yang dijelaskan di sini.

Secara default, server web mengizinkan lalu lintas HTTP melalui port 80 dan lalu lintas HTTPS (aman) melalui port 443 .

Untuk menemukan server web yang berjalan pada port 80 dan 443 , masukkan perintah berikut:

# netstat -plnt | awk '$4 ~ /:(80|443)$/'
tcp6       0      0 :::80                   :::*                    LISTEN      2549/httpd
tcp6       0      0 :::443                  :::*                    LISTEN      2549/httpd

Untuk memeriksa status server web, jalankan salah satu perintah yang ditunjukkan pada tabel berikut:

Jenis server web Perintah
httpd service httpd status
atau
systemctl status httpd
apache2 service apache2 status
atau
systemctl status apache2
nginx service nginx status
atau
systemctl status nginx
Plesk service psa status
atau
systemctl status psa

Untuk memeriksa Plesk dan melihat server web mana yang berjalan, masukkan perintah berikut:

# service psa status; netstat -plnt | awk '$4 ~ /:(80|443)$/'

Periksa konfigurasi vhosts

Server web (atau kumpulan server web) dapat meng-host beberapa situs web dengan menggunakan Host Virtual (vhost). Vhost memungkinkan beberapa situs web untuk berbagi sumber daya dari server fisik.

Vhost dapat berbasis alamat IP atau berbasis nama. Vhost berbasis alamat IP menetapkan alamat IP yang berbeda ke situs web, dan vhost berbasis nama menetapkan beberapa nama host ke satu alamat IP. Vhost melacak situs web di server web, menentukan konfigurasi setiap situs web.

Untuk memeriksa konfigurasi vhosts di Apache, masukkan salah satu perintah berikut:

# httpd -S

atau

# apache2ctl -S
*:80                   example.com (/etc/httpd/vhost.d/example.com.conf:1)

Untuk membaca isi file konfigurasi vhost, masukkan perintah berikut:

# cat /etc/httpd/vhost.d/example.com.conf 

Entri dalam file konfigurasi vhosts meliputi:

  • :80 atau :443 :Entri ini menentukan apakah situs web menggunakan HTTP (80 ) atauHTTPS (443 ).
  • DocumentRoot :Jalur direktori file situs web. Ini paling sering merupakan lokasi di mana pengembang memerlukan akses untuk mengunggah file.
  • Nama Server :Nama domain situs web.
  • ServerAlias :Nama domain situs web lain yang ingin Anda alihkan keServerName domain. Anda biasanya menggunakan domain dengan jenis www.domain , tetapi Anda juga dapat menggunakan domain atau subdomain lain.
  • Log Kesalahan :Jalur direktori dan nama log kesalahan.
  • Port 443 :Konfigurasi SSL. Beri komentar di bagian ini jika situs web tidak memiliki sertifikat SSL yang valid.
  • Situs HTTPS aman :Tiga jalur file SSL yang diperlukan untuk enkripsi penuh untuk mengubahnya menjadi situs HTTPS yang lebih aman.

Contoh berikut menunjukkan file konfigurasi vhosts:

<VirtualHost *:80>
    DocumentRoot "/var/www/vhosts/example.com/httpdocs"
    ServerName "example.com"
    ServerAlias "www.example.com"
    <Directory /var/www/vhosts/example.com/httpdocs>
        AllowOverride All
        Options +FollowSymlinks
    </Directory>
 
    DirectoryIndex index.html index.php index.htm
 
    # Logging
    CustomLog /var/log/httpd/example.com-access_log combined
    ErrorLog /var/log/httpd/example.com-error_log
</VirtualHost>
 
#<VirtualHost *:443>
#    DocumentRoot "/var/www/vhosts/example.com/httpdocs"
#    ServerName "example.com"
#    ServerAlias "www.example.com"
#    <Directory /var/www/vhosts/example.com/httpdocs>
#        AllowOverride All
#        Options +FollowSymlinks
#    </Directory>
 
#    DirectoryIndex index.html index.php index.htm
 
#    # SSL Configuration
#    SSLEngine On
#    SSLCertificateFile /etc/httpd/conf/ssl.crt/2021-example.com.crt
#    SSLCACertificateFile /etc/httpd/conf/ssl.crt/2021-example.com.ca
#    SSLCertificateKeyFile /etc/httpd/conf/ssl.key/2021-example.com.key
#
#    # Logging
#    CustomLog /var/log/httpd/example.com-ssl_access_log combined
#    ErrorLog /var/log/httpd/example.com-ssl_error_log
#</VirtualHost>

Untuk menyalin file konfigurasi vhost yang ada untuk membuat yang baru, masukkan perintah berikut:

# cat /OLD_DOMAIN.conf | sed 's/OLD_DOMAIN/NEW_DOMAIN/ig' >> /NEW_DOMAIN.conf

Edit file konfigurasi vhost baru sesuai kebutuhan. Misalnya, Anda mungkin perlu mengomentari pengaturan yang membuat port 443 aktif.

Untuk menemukan lokasi DocumentRoot dalam file konfigurasi vhost, masukkan perintah berikut:

# grep Doc /etc/httpd/vhost.d/example.com.conf

DocumentRoot /var/www/vhosts/example.com

Buat vhost baru

Gunakan petunjuk berikut untuk membuat vhost baru:

  1. Jika memungkinkan, salin vhost yang ada untuk mempertahankan pengaturan yang konsisten. Gunakan editor teks, seperti vim , nano , sed , atau awk , jika Anda perlu mengeditnya.

       # cat /OLD_DOMAIN.conf | sed 's/OLD_DOMAIN/NEW_DOMAIN/ig' >> /NEW_DOMAIN.conf
    
  2. Buat DocumentRoot new baru direktori. Sistem membuat log kustom dan kesalahan secara otomatis. Jalankan perintah berikut:

    # mkdir -p /docroot
    
  3. Periksa apakah server web tidak mengirim kesalahan:

    # httpd -t
    
  4. Lakukan restart dengan anggun di server web untuk menggabungkan perubahan dengan gangguan minimal ke lingkungan langsung Anda:

    # service httpd graceful
    
  5. Perubahan terkecil dalam vhost dapat mengganggu seluruh server web Anda dan menghentikannya dari melayani semua situs web Anda. Oleh karena itu, gunakan salah satu perintah berikut untuk memeriksa ulang server web:

    Jenis server web Perintah
    httpd # httpd -t; service httpd status
    apache2 # apache2ctl -t; service apache2 status
    nginx # nginx -t; service nginx status

Memeriksa dan memecahkan masalah perubahan pada konfigurasi vhost

Untuk memeriksa kesalahan di Apache, gunakan salah satu dari perintah berikut:

# httpd -t

atau

# apache2ctl -t

AH00558: httpd: Could not reliably determine the server's fully qualified
domain name, using 127.0.0.1. Set the 'ServerName' directive globally to
suppress this message
Syntax OK

Untuk memeriksa kesalahan di NGINX, gunakan perintah berikut:

# nginx -t

AH00558: httpd: Could not reliably determine the server's fully qualified
domain name, using 127.0.0.1. Set the 'ServerName' directive globally to
suppress this message
Syntax OK

Catatan :Klausa Tidak dapat ditentukan dengan andal adalah umum, dan itu tidak berarti kesalahan. Anda biasanya dapat mengabaikannya.

Contoh berikut menunjukkan contoh kesalahan:

# httpd -t
AH00112: Warning: DocumentRoot [/var/www/vhosts/example.com] does not exist
AH00558: httpd: Could not reliably determine the server's fully qualified
domain name, using 127.0.0.1. Set the 'ServerName' directive globally to
suppress this message
Syntax OK

Perbaiki kesalahan ini dengan membuat DocumentRoot direktori:

# mkdir -p /var/www/vhosts/example.com

Contoh kesalahan lain:

# httpd -t
AH00526: Syntax error on line 5 of /etc/httpd/vhost.d/example.com.conf:
Invalid command 'oops', perhaps misspelled or defined by a module not
included in the server configuration

Kata ups ada di file vhost, dan Apache tidak tahu cara menafsirkannya. Anda dapat menggunakan vim , nano , atau editor teks lain untuk memperbaiki kesalahan.

Mulai ulang server web

Server web mengakui perubahan yang dibuat pada konfigurasi vhosts setelah dimulai ulang. Utas saat ini dapat selesai sebelum memulai ulang terjadi dengan anggun pilihan.

Untuk melakukan restart dengan lancar di Apache, masukkan salah satu perintah berikut:

# service httpd graceful

atau

# service apache2 graceful

Terkadang, perubahan terkecil dalam vhost dapat mengganggu seluruh server web Anda dan menghentikan penayangan semua situs web Anda. Jadi buat cadangan pekerjaan Anda, dan setelah melakukan restart dengan baik untuk mengenali perubahan, pastikan server web Anda tetap berjalan tanpa kesalahan.

Berikut ini adalah praktik terbaik untuk menghindari gangguan layanan setelah mengubah konfigurasi vhosts:

  • Cadangkan server web.
  • Lakukan perubahan.
  • Lakukan mulai ulang dengan anggun.
  • Pastikan server web berjalan tanpa kesalahan.

Dalam lingkungan hidup, kuncinya adalah untuk menghindari downtime sebanyak mungkin, yang berarti bahwa Anda perlu melakukan restart dengan baik pada server web dan menjalankan pemeriksaan Anda secepat mungkin sehingga Anda dapat membatalkan perubahan Anda jika diperlukan. Untuk melakukan ini, Anda dapat mengelompokkan semua perintah dalam satu baris.

Untuk melakukan restart dengan baik pada Apache dan memeriksa kesalahan, masukkan salah satu dari perintah berikut:

# service httpd graceful; httpd -t; service httpd status | grep running

atau

# service apache2 graceful; apache2ctl -t; service apache2 status | grep running

AH00558: httpd: Could not reliably determine the server's fully qualified domain
name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
Redirecting to /bin/systemctl status httpd.service
Active: active (running) (Result: exit-code) since Mon 2021-01-18 12:53:06 GMT; 2 months 19 days ago

Untuk memulai ulang NGINX dan memeriksa apakah itu berjalan, masukkan perintah berikut:

# nginx -s reload; nginx -t; service nginx status

Gunakan tab Umpan Balik untuk memberikan komentar atau mengajukan pertanyaan. Anda juga dapat memulai percakapan dengan kami.


Linux
  1. Menyetel Apache Web Server Keepalive

  2. Apa itu Server Web, dan Bagaimana Cara Kerja Server Web?

  3. Cara Menginstal Server Web Nginx di Linux

  1. Instal WordPress di Server Web LiteSpeed

  2. Menyiapkan Server Web Ubuntu?

  3. Apakah aman untuk menonaktifkan IPv6 di server Debian saya?

  1. Cara mengkonfigurasi server web Apache

  2. Apa itu Apache? Tinjauan Mendalam Server Web Apache

  3. Vhost dan server memblokir dasar-dasar