Cara Mengatur Nama Berbasis Nama dan Host Virtual Berbasis IP (Blok Server) dengan Nginx

Cara Mengatur Nama Berbasis Nama dan Host Virtual Berbasis IP (Blok Server) dengan Nginx

Dalam waktu yang relatif singkat sejak dikembangkan dan disediakan (sedikit lebih dari 10 tahun), Nginx telah mengalami pertumbuhan yang berkelanjutan dan stabil di antara server web karena kinerja tinggi dan penggunaan memori yang rendah.

Nginx berbasis nama dan hosting virtual berbasis IP

Sejak Nginx adalah perangkat lunak gratis dan open source, telah diadopsi oleh ribuan administrator server web di seluruh dunia, tidak hanya di server Linux dan *nix, tetapi juga di Microsoft Windows.

Jangan lewatkan: Apache berbasis nama dan hosting virtual berbasis IP

Bagi kita yang paling terbiasa Apache, Nginx mungkin memiliki kurva belajar yang agak curam (setidaknya itu kasus saya) tetapi tentu saja terbayar begitu Anda mengatur beberapa situs dan mulai melihat lalu lintas dan statistik penggunaan sumber daya.

Di artikel ini kami akan menjelaskan cara menggunakan Nginx untuk mengatur berbasis nama Dan berbasis IP hosting virtual di Centos/RHEL 7 server dan Debian 8 dan turunannya, dimulai dengan Ubuntu 15.04 dan spin-off.

Skenario pengujian kami untuk artikel ini adalah sebagai berikut:

  1. Sistem operasi: Debian 8 Jessie Server [IP 192.168.0.25]
  2. Gerbang: Router [ip 192.168.0.1]
  3. Server web: Nginx 1.6.2-5
  4. Domain dummy: www.Tecmintlovesnginx.com dan www.NginxmeanSpower.com.

Menginstal server web nginx

Jika Anda belum melakukannya, silakan instal Nginx sebelum melanjutkan lebih lanjut. Jika Anda membutuhkan bantuan untuk memulai, pencarian cepat untuk Nginx di situs ini akan mengembalikan beberapa artikel tentang topik ini. Klik ikon kaca pembesar di bagian atas halaman ini dan cari kata kunci Nginx. Jika Anda tidak tahu cara mencari artikel di situs ini, jangan khawatir di sini kami telah menambahkan tautan ke artikel nginx, cukup lakukan dan instal sesuai dengan distribusi Linux Anda masing -masing.

  1. Instal dan kompilasi nginx dari sumber di rhel/centos 7
  2. Instal Nginx Web Server di Debian 8
  3. Instal Nginx dengan MariaDB dan PHP/PHP-FPM di Fedora 23
  4. Instal Nginx Web Server di Ubuntu 15.10 server/desktop
  5. Direktori Situs Web Lindung Kata Sandi Nginx

Kemudian bersiaplah untuk melanjutkan dengan sisa tutorial ini.

Membuat host virtual berbasis nama di nginx

Seperti yang saya yakin sudah Anda ketahui, virtual host adalah situs web yang dilayani oleh nginx dalam satu vps cloud atau server fisik. Namun, di nginx docs Anda akan menemukan istilah tersebut "Blok server" Sebaliknya, tetapi pada dasarnya mereka adalah hal yang sama disebut dengan nama yang berbeda.

Langkah pertama untuk mengatur host virtual adalah membuat satu atau lebih blok server (dalam kasus kami kami akan membuat dua, satu untuk setiap domain dummy) di file konfigurasi utama (/etc/nginx/nginx.conf) atau di dalam /etc/nginx/situs yang tersedia.

Meskipun nama file konfigurasi di direktori ini (Situs-tersedia) dapat diatur ke apa pun yang Anda inginkan, itu ide yang baik untuk menggunakan nama domain, dan di samping itu kami memilih untuk menambahkan .conf ekstensi untuk menunjukkan bahwa ini adalah file konfigurasi.

Blok server ini bisa relatif kompleks, tetapi dalam bentuk dasar mereka terdiri dari konten berikut:

Di dalam /etc/nginx/situs-tersedia/tecmintlovesnginx.com.conf:

server dengarkan 80; server_name tecmintlovesnginx.com www.Tecmintlovesnginx.com; Access_log/var/www/logs/tecmintlovesnginx.mengakses.catatan; ERROR_LOG/VAR/WWW/LOGS/TECMINTLOVESNGINX.kesalahan.kesalahan log; root/var/www/tecmintlovesnginx.com/public_html; Indeks Indeks.Indeks HTML.htm;  

Di dalam /etc/nginx/situs-tersedia/nginxmeanspower.com.conf:

server dengarkan 80; server_name nginxmeanspower.com www.NginxmeanSpower.com; access_log/var/www/logs/nginxmeanspower.mengakses.catatan; ERROR_LOG/VAR/WWW/LOGS/NGINXMEANSPOWER.kesalahan.kesalahan log; root/var/www/nginxmeanspower.com/public_html; Indeks Indeks.Indeks HTML.htm;  

Anda dapat menggunakan blok di atas untuk mulai mengatur host virtual Anda, atau Anda dapat membuat file dengan kerangka dasar dari /etc/nginx/situs-tersedia/default (Debian) atau /etc/nginx/nginx.conf.bawaan (Centos).

Setelah disalin, ubah izin dan kepemilikan mereka:

# chmod 660/etc/nginx/situs-tersedia/tecmintlovesnginx.com.conf # chmod 660/etc/nginx/situs-tersedia/nginxmeanspower.com.conf 

Debian dan Derivatif

# chgrp www-data/etc/nginx/situs-tersedia/tecmintlovesnginx.com.conf # chgrp www-data/etc/nginx/situs-tersedia/nginxmeanspower.com.conf 

Centos dan rhel

# chgrp nginx/etc/nginx/situs-tersedia/tecmintlovesnginx.com.conf # chgrp nginx/etc/nginx/situs-tersedia/nginxmeanspower.com.conf 

Setelah selesai, Anda harus menghapus file sampel atau mengganti nama menjadi sesuatu yang lain untuk menghindari kebingungan atau konflik.

Harap dicatat bahwa Anda juga perlu membuat direktori untuk log (/var/www/log) dan berikan pengguna nginx (Nginx atau www-data, Bergantung pada apakah Anda menjalankan Centos atau Debian) membaca dan menulis izin di atasnya:

# mkdir/var/www/logs # chmod -r 660/var/www/logs # chgrp/var/www/logs 

Host virtual sekarang harus diaktifkan dengan membuat symlink ke file ini di direktori yang diaktifkan situs:

# ln -s/etc/nginx/situs -tersedia/tecmintlovesnginx.com.conf/etc/nginx/Situs-Enabled/tecmintlovesnginx.com.conf # ln -s/etc/nginx/situs -tersedia/nginxmeanspower.com.conf/etc/nginx/Situs-Enabled/NginxmeanSpower.com.conf 

Selanjutnya, buat file html sampel bernama indeks.html di dalam /var/www // public_html Untuk masing -masing host virtual (ganti sesuai kebutuhan). Ubah kode berikut seperlunya:

    Tecmint mencintai Nginx   

Tecmint mencintai Nginx!

Akhirnya, uji konfigurasi nginx dan mulai server web. Jika ada kesalahan dalam konfigurasi, Anda akan diminta untuk memperbaikinya:

# nginx -t && Systemctl mulai nginx 
Periksa konfigurasi nginx

dan tambahkan entri berikut ke Anda /etc/host file di mesin lokal Anda sebagai strategi resolusi nama dasar:

192.168.0.25 Tecmintlovesnginx.com 192.168.0.25 NginxmeanSpower.com 

Kemudian luncurkan browser web dan buka URL yang tercantum di atas:

Periksa host virtual berbasis nama nginx

Untuk menambahkan lebih banyak host virtual di nginx, cukup ulangi langkah -langkah yang diuraikan di atas sebanyak yang diperlukan.

Host virtual berbasis IP di nginx

Sebagai lawan berbasis nama host virtual di mana semua host dapat diakses melalui alamat IP yang sama, Berbasis IP host virtual membutuhkan yang berbeda IP: Port kombinasi masing -masing.

Ini memungkinkan server web untuk mengembalikan situs yang berbeda tergantung pada alamat IP dan port tempat permintaan diterima. Karena host virtual berbasis bernama memberi kami keuntungan berbagi alamat IP dan port, mereka adalah standar untuk server web tujuan umum dan harus menjadi pengaturan pilihan kecuali versi Nginx Anda yang diinstal tidak mendukung Indikasi Nama Server (Sni), baik karena itu adalah versi yang benar -benar sudah ketinggalan zaman, atau karena disusun tanpa -dengan-http_ssl_module Kompilasi opsi.

Jika,

# nginx -v 

tidak mengembalikan opsi yang disorot di bawah ini:

Periksa versi dan modul Nginx

Anda perlu memperbarui versi Nginx Anda atau mengkompilasi ulang, tergantung pada metode instalasi asli Anda. Untuk mengkompilasi Nginx, ikuti artikel di bawah ini:

  1. Instal dan kompilasi nginx dari sumber di rhel/centos 7

Dengan asumsi kita baik untuk pergi, kita perlu mencatat bahwa prasyarat lain Berbasis IP Host virtual adalah ketersediaan IP terpisah - baik dengan menugaskannya ke antarmuka jaringan yang berbeda, atau melalui penggunaan IP virtual (juga dikenal sebagai aliasing IP).

Untuk melakukan ip aliasing Debian (Dengan asumsi Anda menggunakan eth0), edit /etc/jaringan/antarmuka sebagai berikut:

Debian dan Derivatif

AUTO ETH0: 1 IFACE ETH0: 1 Alamat statis inet 192.168.0.25 Netmask 255.255.255.0 Jaringan 192.168.0.0 siaran 192.168.0.255 Gateway 192.168.0.1 AUTO ETH0: 2 IFACE ETH0: 2 ALAMAT STATIC INET 192.168.0.26 Netmask 255.255.255.0 Jaringan 192.168.0.0 siaran 192.168.0.255 Gateway 192.168.0.1 

Dalam contoh di atas kami membuat dua NIC virtual eth0: eth0: 1 (192.168.0.25) dan eth0: 2 (192.168.0.26).

Centos dan rhel

Di Centos, ganti nama /etc/sysconfig/network-scripts/ifcfg-enp0s3 sebagai IFCFG-ENP0S3: 1 dan buat salinan sebagai IFCFG-ENP0S3: 2, Dan kemudian ubah saja baris berikut, masing -masing:

Perangkat = "ENP0S3: 1" IPADDR = 192.168.0.25 

Dan

Perangkat = "ENP0S3: 2" IPADDR = 192.168.0.26 

Setelah selesai, restart layanan jaringan:

# Systemctl Restart Networking 

Selanjutnya, buat perubahan berikut ke blok server yang sebelumnya ditentukan dalam artikel ini:

Di dalam /etc/nginx/situs-tersedia/tecmintlovesnginx.com.conf:

Dengarkan 192.168.0.25:80 

Di dalam /etc/nginx/situs-tersedia/nginxmeanspower.com.conf:

Dengarkan 192.168.0.26:80 

Akhirnya, restart nginx agar perubahan berlaku.

# Systemctl restart nginx 

Dan jangan lupa untuk memperbarui lokal Anda /etc/host demikian:

192.168.0.25 Tecmintlovesnginx.com 192.168.0.26 NginxmeanSpower.com 

Dengan demikian, setiap permintaan yang dibuat 192.168.0.25 Dan 192.168.0.26 di port 80 akan kembali Tecmintlovesnginx.com Dan NginxmeanSpower.com, masing -masing:

Periksa host virtual berbasis IP nginx

Seperti yang dapat Anda lihat pada gambar di atas, Anda sekarang memiliki dua host virtual berbasis IP menggunakan satu-satunya NIC di server Anda dengan dua alias IP yang berbeda.

Ringkasan

Dalam tutorial ini kami telah menjelaskan cara mengatur keduanya berbasis nama Dan Berbasis IP host virtual di nginx. Meskipun Anda mungkin ingin menggunakan opsi pertama, penting untuk mengetahui bahwa opsi lain masih ada jika Anda membutuhkannya - pastikan Anda mengambil keputusan ini setelah mempertimbangkan fakta yang diuraikan dalam panduan ini.

Selain itu, Anda mungkin ingin menandai dokumen nginx karena layak dan baik untuk sering merujuknya saat membuat blok server (begitulah - kami berbicara dalam bahasa nginx sekarang) dan mengkonfigurasinya. Anda tidak akan percaya semua opsi yang tersedia untuk mengonfigurasi dan menyetel server web yang luar biasa ini.

Seperti biasa, jangan ragu untuk memberi kami garis menggunakan formulir di bawah ini jika Anda memiliki pertanyaan atau komentar tentang artikel ini. Kami berharap dapat mendengar dari Anda, dan umpan balik Anda tentang panduan ini sangat disambut.