Kami menghosting banyak aplikasi web untuk pelanggan kami. Jelas mereka ingin menggunakan domain mereka sendiri untuk merujuk ke aplikasi tersebut, biasanya mereka ingin setiap pengguna yang mengetik http://www.customer1.example
atau http://customer1.example
pergi ke aplikasi web mereka.
Situasi yang kami hadapi adalah kami harus memiliki fleksibilitas untuk mengubah alamat IP dalam waktu dekat. Dan kami tidak ingin bergantung pada pelanggan yang melakukan perubahan rekam A di domain mereka. Jadi kami berpikir bahwa menggunakan CNAME
catatan akan berhasil, tetapi karena kami menemukan CNAME
catatan tidak akan berfungsi untuk domain root.
Pada dasarnya:
customer1.example IN CNAME customer1.mycompanydomain.example //this is invalid as the RFC
www.customer1.example IN CNAME customer1.mycompanydomain.example //this is valid and will work
Kami ingin dapat mengubah alamat IP customer1.mycompanydomain.example
atau A
catatan dan pelanggan kami akan mengikuti catatan ini yang kami kendalikan.
di DNS kami akan terlihat seperti:
customer1.mycompanydomain.example IN A 192.0.2.1
Ada ide?
sumber
Jawaban:
Alasan pertanyaan ini masih sering muncul adalah karena, seperti yang Anda sebutkan, entah bagaimana seseorang yang dianggap penting menulis bahwa RFC menyatakan nama domain tanpa subdomain di depannya tidak valid. Namun, jika Anda membaca RFC dengan cermat, Anda akan menemukan bahwa ini tidak persis seperti yang dikatakannya. Faktanya, RFC 1912 menyatakan:
Beberapa host DNS menyediakan cara untuk mendapatkan fungsionalitas seperti CNAME di puncak zona (tingkat domain root, untuk nama domain polos) menggunakan jenis catatan khusus. Catatan tersebut meliputi, misalnya:
Untuk setiap penyedia, penyiapannya serupa: arahkan entri ALIAS atau ANAME untuk domain apex Anda ke example.domain.com, seperti yang Anda lakukan dengan data CNAME. Bergantung pada penyedia DNS, nilai kosong atau @ Name mengidentifikasi puncak zona.
ALIAS atau ANAME atau @ example.domain.com.
Jika penyedia DNS Anda tidak mendukung tipe catatan seperti itu, dan Anda tidak dapat beralih ke yang mendukung, Anda perlu menggunakan pengalihan subdomain, yang tidak terlalu sulit, tergantung pada protokol atau perangkat lunak server yang perlu melakukannya. .
Saya sangat tidak setuju dengan pernyataan bahwa itu dilakukan hanya oleh "admin amatir" atau gagasan semacam itu. Ini sederhana "Apa nama dan layanannya perlu dilakukan?" menangani, dan kemudian menyesuaikan konfigurasi DNS Anda untuk melayani keinginan tersebut; Jika layanan utama Anda adalah web dan email, saya tidak melihat alasan yang VALID mengapa menghapus CNAME untuk selamanya akan menjadi masalah. Lagi pula, siapa yang lebih memilih @ subdomain.domain.org daripada @ domain.org? Siapa yang butuh "www" jika Anda sudah menyetel protokol itu sendiri? Tidak masuk akal untuk mengasumsikan bahwa penggunaan nama domain root tidak valid.
sumber
CNAME membuat rekaman root secara teknis tidak bertentangan dengan RFC, tetapi memiliki batasan yang berarti itu adalah praktik yang tidak disarankan.
Biasanya catatan root Anda memiliki banyak entri. Katakanlah, 3 untuk server nama Anda dan kemudian satu untuk alamat IP.
Per RFC:
Dan Per IETF 'Common DNS Operational and Configuration Errors' Dokumen:
Referensi:
sumber
NS
danSOA
mencatat dan karenanya tidak dapat memilikiCNAME
catatan.Saya tidak tahu bagaimana mereka lolos, atau apa efek samping negatifnya, tetapi saya menggunakan Hover.com untuk menghosting beberapa domain saya, dan baru-baru ini menyiapkan puncak domain saya sebagai CNAME di sana. Alat pengeditan DNS mereka tidak mengeluh sama sekali, dan domain saya dengan senang hati menyelesaikannya melalui CNAME yang ditetapkan.
Inilah yang Dig tunjukkan kepada saya untuk domain ini (domain sebenarnya disamarkan sebagai mydomain.com):
sumber
Perusahaan saya melakukan hal yang sama untuk sejumlah pelanggan tempat kami menghosting situs web untuk mereka meskipun dalam kasus kami adalah xyz.company.com daripada www.company.com. Kami meminta mereka untuk menetapkan rekam A di xyz.company.com agar mengarah ke alamat IP yang kami alokasikan.
Mengenai bagaimana Anda dapat mengatasi perubahan alamat IP, saya rasa tidak ada solusi yang tepat. Beberapa ide adalah:
Gunakan penyeimbang beban NAT atau IP dan berikan pelanggan Anda alamat IP miliknya. Jika alamat IP server web perlu diubah, Anda dapat melakukan pembaruan pada NAT atau penyeimbang beban,
Tawarkan juga layanan hosting DNS dan minta pelanggan Anda untuk menghosting domain mereka dengan Anda sehingga Anda dapat memperbarui rekam A,
Buat pelanggan Anda menyetel rekam A mereka ke satu server web utama dan gunakan pengalihan HTTP untuk setiap permintaan web pelanggan.
sumber
Sipwiz benar, satu-satunya cara untuk melakukan ini dengan benar adalah pendekatan hybrid HTTP dan DNS. Registrar saya adalah penjual ulang untuk Tucows dan mereka menawarkan penerusan domain root sebagai layanan nilai tambah gratis.
Jika domain Anda adalah blah.com mereka akan menanyakan ke mana Anda ingin domain tersebut diteruskan, dan Anda mengetik www.blah.com. Mereka menetapkan data A ke server apache mereka dan secara otomatis menambahkan blah.com sebagai vhost DNS. Vhost merespons dengan kesalahan HTTP 302 yang mengarahkan mereka ke URL yang tepat. Sangat mudah untuk skrip / pengaturan dan dapat ditangani oleh kelas bawah jika tidak perangkat keras akan dibuang.
Jalankan perintah berikut sebagai contoh: curl -v eclecticengineers.com
sumber
Anda harus meletakkan titik di akhir domain eksternal sehingga yang Anda maksud bukanlah pelanggan1.mycompanydomain.com.localdomain;
Jadi ubah saja:
Untuk
sumber
customer1.com
, ini berfungsi ... tetapi diartikan sebagai CNAMe yang menentukan untuk subdomaincustomer1.com.customer1.com
. Jika saya menambahkan titik ke item pertama, catatan akan ditafsirkan dengan benar, tetapi tidak berfungsi lagi. Saya tidak melihat solusi di sini.Saya melihat readytocloud.com di-host di Apache 2.2.
Ada cara yang lebih sederhana dan efisien untuk mengarahkan situs non-www ke situs www di Apache.
Tambahkan aturan penulisan ulang berikut ke konfigurasi Apache (baik di dalam virtual host atau di luar. Tidak masalah):
Atau, aturan penulisan ulang berikut jika Anda menginginkan pemetaan 1-ke-1 URL dari situs non-www ke situs www:
Catatan, modul mod_rewrite perlu dimuat agar ini berfungsi. Untungnya readytocloud.com berjalan di kotak CentOS, yang secara default memuat mod_rewrite.
Kami memiliki server klien yang menjalankan Apache 2.2 dengan kurang dari 3.000 domain dan hampir 4.000 pengalihan, namun, beban di server berkisar sekitar 0,10 - 0,20.
sumber
Terima kasih untuk sipwiz dan MrEvil. Kami mengembangkan skrip PHP yang akan mengurai URL yang dimasukkan pengguna dan ditempelkan
www
di atasnya. (misal jika pelanggan masuk ke kiragiannis.com , maka akan dialihkan ke www.kiragiannis.com ). Jadi pelanggan kami mengarahkan root mereka (misalnyacustomer1.com
untukA
merekam di mana redirector web kami berada) dan kemudianwww
CNAME
keA
catatan nyata yang dikelola oleh kami.Di bawah kode jika Anda tertarik untuk masa depan kami.
sumber
http://
perlu dihapus, atau/
($urlPagePath
akan selalu kosong). Cf httpd.apache.org/docs/2.4/expr.html . Karena cara kode mencoba menghilangkan subdomain, itu juga tidak akan berfungsi untuk hal-hal seperti diwww.example.co.uk
manaco.uk
harus dipertimbangkan secara keseluruhan. Itu juga tidak menangani HTTPS. Dan akhirnya menggunakan PHP cukup lakukan pengalihan HTTP di mana server web mana pun dapat melakukannya dalam konfigurasi, itu terlalu rumit. Jadi singkatnya, ini tentunya bukan jawaban yang divalidasi untuk pertanyaan ini.