GNU/Linux >> Belajar Linux >  >> Linux

Vhost dan server memblokir dasar-dasar

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:

  1. Jika memungkinkan, salin vhost yang ada untuk mempertahankan pengaturan yang konsisten. Gunakan editor teks atau alat seperti vim , nano , sed, or awk`.

  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. 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.


Linux
  1. Apa itu Server Web, dan Bagaimana Cara Kerja Server Web?

  2. Instal IIS dan konfigurasikan situs web

  3. Dasar-dasar pengguna dan basis data MySQL

  1. Komunikasi antar-proses di Linux:Soket dan sinyal

  2. Status Sistem dan Server

  3. Disk sistem dan disk data FAQ

  1. Status Layanan Solaris Dan Ketergantungan?

  2. Ubuntu 14 Server Dan Xrdp?

  3. Apache2 Dan Mengikat?