Saya sudah menambahkan domain khusus ke aplikasi Heroku saya dan berfungsi dengan www.domain.com
.
Saya perlu tahu cara menyiapkan domain tanpa www
harus menyelesaikan ke aplikasi juga.
Berikut adalah pengaturan DNS saya saat ini:
$TTL 86400
@ IN SOA ns1.first-ns.de. postmaster.robot.first-ns.de. (
2013041500 ; serial
14400 ; refresh
1800 ; retry
604800 ; expire
86400 ) ; minimum
@ IN NS robotns3.second-ns.com.
@ IN NS robotns2.second-ns.de.
@ IN NS ns1.first-ns.de.
@ IN A 88.198.38.XXX
localhost IN A 127.0.0.1
mail IN A 88.198.38.XXX
ftp IN CNAME www
imap IN CNAME www
loopback IN CNAME localhost
pop IN CNAME www
relay IN CNAME www
smtp IN CNAME www
www IN CNAME appname.herokuapp.com.
@ IN MX 10 mail
Apa pengaturan yang benar untuk digunakan sehingga keduanya example.com
dan www.example.com
akan mengarah dengan benar ke aplikasi Heroku saya?
Jawaban:
(Catatan: domain root, base, apex semuanya sama. Menggunakan secara bergantian untuk google-foo.)
Secara tradisional, untuk mengarahkan domain apex Anda, Anda akan menggunakan rekam A yang menunjuk ke IP server Anda. Solusi ini tidak dapat diskalakan dan tidak dapat digunakan untuk platform cloud seperti Heroku, di mana beberapa backend yang sering berubah bertanggung jawab untuk menanggapi permintaan.
Untuk subdomain (seperti
www.example.com
) Anda dapat menggunakan catatan CNAME yang mengarah keyour-app-name.herokuapp.com
. Sejak saat itu, Heroku mengelola rekam A dinamis di belakangnyayour-app-name.herokuapp.com
sehingga selalu mutakhir. Sayangnya, spesifikasi DNS tidak mengizinkan catatan CNAME di puncak zona (domain dasar). (Misalnya, data MX akan rusak karena CNAME akan diikuti ke targetnya terlebih dahulu.)Kembali ke domain root, solusi sederhana dan umum adalah dengan tidak menggunakannya sama sekali. Sebagai tindakan fallback, beberapa penyedia DNS menawarkan untuk menyiapkan pengalihan HTTP untuk Anda. Dalam kasus tersebut, atur sehingga itu
example.com
adalah pengalihan HTTP kewww.example.com
.Beberapa penyedia DNS telah maju dengan solusi khusus yang memungkinkan perilaku seperti CNAME di puncak zona. Sepengetahuan saya, kami memiliki catatan ALIAS DNSimple dan catatan ANAME DNS Made Easy ; keduanya berperilaku serupa.
Dengan menggunakan itu, Anda dapat mengatur catatan Anda sebagai (menggunakan notasi file zona, bahkan Anda mungkin akan melakukan ini di antarmuka pengguna web mereka):
Ingat di
@
sini adalah singkatan dari root domain (example.com
). Perlu diingat juga bahwa trailing dots penting, baik di zonefiles, dan beberapa antarmuka pengguna web.Lihat juga:
Catatan:
Rute 53 Amazon juga memiliki jenis catatan ALIAS, tetapi agak terbatas, karena hanya berfungsi untuk menunjuk di dalam AWS. Saat ini saya tidak akan merekomendasikan penggunaan ini untuk penyiapan Heroku.
Beberapa orang bingung antara penyedia DNS dengan pencatat nama domain, karena ada sedikit tumpang tindih dengan perusahaan yang menawarkan keduanya. Ingatlah bahwa untuk mengalihkan DNS Anda ke salah satu penyedia yang disebutkan di atas, Anda hanya perlu memperbarui catatan server nama Anda dengan pencatatan domain Anda saat ini. Anda tidak perlu mentransfer pendaftaran domain Anda.
sumber
Untuk mengarahkan domain apex / root / naked Anda ke aplikasi yang dihosting Heroku, Anda harus menggunakan penyedia DNS yang mendukung data seperti CNAME (sering disebut sebagai data ALIAS atau ANAME). Saat ini Heroku merekomendasikan :
Yang mana pun yang Anda pilih, rekaman Anda akan terlihat seperti berikut:
Rekam:
ALIAS
atauANAME
Nama: kosong atau
@
Target:
example.com.herokudns.com.
Hanya itu yang Anda butuhkan.
Namun, tidak baik bagi SEO untuk memiliki resolusi versi www dan non-www. Yang satu harus menunjuk ke yang lain sebagai URL kanonis. Bagaimana Anda memutuskan untuk melakukannya tergantung pada apakah Anda menggunakan HTTPS atau tidak. Dan jika tidak, Anda mungkin harus menjadi seperti Heroku sekarang menangani sertifikat SSL untuk Anda secara otomatis dan gratis untuk semua aplikasi yang berjalan di dino berbayar.
Jika Anda tidak menggunakan HTTPS, Anda cukup menyiapkan catatan Pengalihan 301 dengan sebagian besar penyedia DNS menunjuk
www
kehttp://example.com
.Jika Anda sedang menggunakan HTTPS, kemungkinan besar Anda akan perlu untuk menangani redirection di tingkat aplikasi. Jika Anda ingin tahu alasannya, lihat pendek dan panjang ini penjelasan tetapi pada dasarnya karena penyedia DNS Anda atau layanan penerusan URL lainnya tidak memiliki, dan seharusnya tidak memiliki, sertifikat SSL dan kunci pribadi Anda, mereka tidak dapat menanggapi HTTPS permintaan untuk domain Anda.
Untuk menangani pengalihan di tingkat aplikasi, Anda harus:
heroku domains:add example.com
danheroku domains:add www.example.com
)www
mengarah kewww.example.com.herokudns.com.
SECURE_SSL_REDIRECT
keTrue
)Lihat posting ini dari DNSimple untuk lebih lanjut.
sumber
Saya sekarang menggunakan Google Apps (untuk Email) dan Heroku sebagai server web. Saya menggunakan fitur Pengalihan Permanen 301 Google Apps untuk mengalihkan domain polos ke WWW.domain_Anda.com
Anda dapat menemukan petunjuk langkah demi langkah di sini https://stackoverflow.com/a/20115583/1440255
sumber
Anda tidak diperbolehkan memiliki data CNAME untuk domain tersebut, karena CNAME adalah fitur aliasing yang mencakup semua jenis data (terlepas dari apakah klien mencari data MX, NS, atau SOA). CNAME juga selalu mengacu pada nama baru, bukan alamat ip, jadi sebenarnya ada dua kesalahan dalam satu baris
Mengubah CNAME itu menjadi rekam A akan membuatnya berfungsi, asalkan alamat ip yang Anda gunakan adalah yang benar untuk aplikasi Heroku Anda.
Satu-satunya cara yang benar di DNS untuk membuat
domain.com
nama sederhana berfungsi di browser, adalah mengarahkan domain ke alamat IP dengan rekam A.sumber
host app-name.herokuapp.com
hasilnya dinamis. Jika Anda melakukan hardcode, aplikasi Anda pada akhirnya akan rem. Lihat solusi ANAME / CNAME yang direkomendasikan di komentar lain.