Artikel ini memperkenalkan Anda tentang dasar-dasar vhost dan blok server.
Periksa status server web
Server web paling umum yang berjalan di Linux® adalah Apache®(httpd atau apache2 ) dan NGINX®. Plesk® adalah platform GUI untuk mengelola situs web. Jika Anda telah menginstal Plesk, gunakan artikel ini sebagai panduan untuk memahami vhost.
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 |
Di Plesk, untuk memeriksa status dan mengidentifikasi server web mana yang digunakan, 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 IP atau berbasis nama. Vhost berbasis IP menetapkan alamat IP yang berbeda ke situs web, dan berbasis nama vhosts 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
) atau HTTPS (443
). - DocumentRoot :Jalur direktori file situs web.
- 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.
- File SSL :Tiga jalur file SSL yang diperlukan untuk server HTTPS yang 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:
-
Jika memungkinkan, salin vhost yang ada untuk mempertahankan pengaturan yang konsisten. Gunakan editor teks atau alat seperti
vim
,nano
,sed, or
awk`. -
Buat DocumentRoot new baru direktori. Sistem membuat log kustom dan kesalahan secara otomatis. Jalankan perintah berikut:
# mkdir -p /docroot
-
Periksa apakah server web tidak mengirim kesalahan:
# httpd -t
-
Lakukan restart dengan anggun di server web untuk menggabungkan perubahan dengan gangguan minimal ke lingkungan langsung Anda:
# service httpd graceful
-
Periksa kembali server web:
# httpd -t; service httpd 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 :
# 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
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.
Penting untuk menghindari downtime sebanyak mungkin di lingkungan live, yang berarti bahwa setelah memulai ulang server web, Anda harus melakukan pemeriksaan secepat mungkin. Untuk melakukannya, kelompokkan 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.