Heroku / GoDaddy: gửi tên miền trần đến www [đã đóng]


142

Tôi đang cố gắng tìm ra cách để có được tên miền trần cho trang web của tôi để chuyển hướng đến tên miền www. Tôi đang sử dụng Heroku và có tên miền từ GoDaddy. Vì Heroku, hồ sơ A của tôi đã được thiết lập là:

@: 75.101.145.87

@: 75.101.163.44

@: 174.129.25.170

Và CNAME www của tôi trỏ đến proxy.heroku.com.

Tôi đã tìm kiếm trên internet, nhưng không thể tìm thấy câu trả lời đơn giản, miễn phí về cách tôi có thể thực hiện chuyển hướng này. Một số câu trả lời thảo luận về việc sử dụng các dịch vụ phải trả tiền mà tôi không muốn làm và những người khác nói về việc đi vào và sửa đổi cài đặt Heroku, nhưng sau đó không thực sự đưa ra nhiều lời giải thích. Ngay bây giờ, nếu bạn truy cập miền trần trụi của tôi, chỉ có Heroku nói rằng không có ứng dụng nào như vậy tồn tại, trong khi nếu bạn truy cập vào miền www của tôi thì đó là ứng dụng của tôi.


8
Câu hỏi thường gặp về Heroku chỉ cho biết cách thực hiện chuyển hướng với DNSimple. Trang hỗ trợ của họ liên kết đến StackOverflow.
Andrew Latham

32
Tôi nghĩ rằng phản ứng của Emil hơi khó khăn về vấn đề này, trang web này là một tài nguyên để giải quyết các vấn đề chúng ta gặp phải trong hành trình lập trình và đó là một vấn đề tôi đang gặp phải ngay bây giờ! : D
Daniel Morris

Điều này có lẽ nên được đóng lại dưới dạng Dupe thay vì Off-Topic: stackoverflow.com/questions/16022324/iêu
Chris Moschini

2
@ChrisMoschini câu trả lời được chấp nhận tại câu hỏi mà bạn tham khảo không hoạt động trên GoDaddy vì GoDaddy không hỗ trợ các bản ghi ALIAS, chỉ có CNAME. Đây là câu hỏi của riêng tôi, tôi nghĩ.
Topher Hunt

1
Bất cứ điều gì A Records được thiết lập, không có khả năng có một miền trần trụi trực tiếp vào heroku. Chúng tôi chỉ có thể đặt nó thành định tuyến wwwmà CNAME được trỏ đến your-app-name.herokuapp.com.
Chetabahana

Câu trả lời:


231

Trên GoDaddy, sử dụng tính năng "Chuyển tiếp" để thiết lập chuyển tiếp từ yourdomain.comđến www.yourdomain.com. Tính năng chuyển tiếp có thể được truy cập trong Trình quản lý miền ở cuối phần "Thông tin tên miền":

Chuyển tiếp tên miền trong GoDaddy

Nếu bạn làm điều này thì tất cả lưu lượng truy cập vào yourdomain.com sẽ được chuyển đến ứng dụng Heroku CNAME (đây là cách tiếp cận tốt hơn ).

Tuy nhiên, một lưu ý, nếu bạn đang ở trên ngăn xếp Cedar thì không nên sử dụng proxy.heroku.comcho máy chủ lưu trữ wwwCNAME của bạn . Thay vì sử dụng your-app-name.herokuapp.com. Những chi tiết này được đề cập ở đây .

GoDaddy cũng chỉ định rằng để tên miền của bạn chuyển tiếp, bản ghi A của nó phải được trỏ đến 64.202.189.170 hoặc phải nằm trong khoảng sau: 50.63.202.1 - 50.63.202.31 hoặc 184.168.221.1 - 184.168.221.31.


14
điều này có tạo ra một cảnh báo / lỗi nếu bạn sử dụng SSL như heroku yêu cầu không? họ nói nếu https: // example.com được chuyển hướng thì có cảnh báo.
Jaqx

2
@jaqx, điều này đang xảy ra với tôi, bạn đã tìm ra cách để tránh người dùng nhận được cảnh báo này chưa?
jackerman09

3
@ jackerman09 Tôi cảm thấy mệt mỏi vì rắc rối và chuyển sang DNSimple
Jaqx

5
@Matt không có cách nào để làm điều này với GoDaddy. Sử dụng tính năng ALIAS / ANAME của các nhà cung cấp khác như DNSimple hoặc DNS Made Easy nếu bạn yêu cầu điều này.
Ryan Daigle

3
@RyanDaigle Cảm ơn Ryan. Tôi khuyên mọi người nên rời khỏi Godaddy vì nhiều lý do . NameCheap.com là người tôi sử dụng bây giờ. Họ rất tuyệt, và họ ủng hộ những gì tôi đã cố gắng làm. Ngoài ra, NameCheap chấp nhận bitcoin .
Matt

22

Bạn cũng có thể sử dụng http://wwwizer.com để chuyển tiếp từ miền trần trụi của mình sang www. Trong GoDaddy trong trình quản lý DNS theo bản ghi A trong loại tiêu đề @ trong 174.129.25.170. Họ sẽ tự động chuyển hướng từ miền trần sang một với www. Trước mặt nó.


5
Tại sao phải trả một khoản phí khác cho người khác?
Benjamin

4
Bạn, thưa ngài, là một phao cứu sinh. @Vezu: chuyển tiếp không ssl là hoàn toàn miễn phí. Bạn chỉ cần trỏ bản ghi A của bạn cho tên miền trần đến địa chỉ IP đó và nó sẽ chuyển hướng trình duyệt đến tên miền www. Bạn thậm chí không cần một tài khoản với họ.
P O'Conbhui

Tôi đang cố gắng kết hợp wwwizer cho tôi và trong bản ghi A của tôi, tôi có máy chủ lưu trữ là "@" và các điểm theo số 174.129.25.170, theo hướng dẫn của wwwizer, nhưng tôi nhận được trang thông báo lỗi của họ khi tôi truy cập tên miền trần trụi của mình! Tôi đã làm điều này một cách chính xác ??
tx291

7

Trong Trình chỉnh sửa vùng DNS của GoDaddy, bạn sẽ muốn định cấu hình bản ghi CNAME www của mình để trỏ đến @. Trong Bản ghi A của bạn, bạn sẽ sử dụng ký tự đại diện (*) để trỏ đến địa chỉ IP và Bản ghi A thứ hai sử dụng @ làm máy chủ lưu trữ cũng sẽ trỏ đến địa chỉ web. Cách này,

subdomain1.example.com will forward to your IP
www.example.com will forward to your IP
silly.example.com will forward to your IP
anything.example.com will forward to your IP

nhập mô tả hình ảnh ở đây

Các câu hỏi thường gặp

Tôi có thể trỏ * .mydomain.com vào ứng dụng Heroku của mình không?

Có, bằng cách sử dụng tính năng Tên miền tùy chỉnh miễn phí của Heroku, bạn có thể trỏ tên miền ký tự đại diện vào ứng dụng của mình.

Tôi nên sử dụng địa chỉ IP nào để trỏ tên miền tùy chỉnh của mình đến Heroku?

Ngăn xếp định tuyến Heroku sử dụng một tập hợp các địa chỉ IP có thể thay đổi bất cứ lúc nào và sử dụng bản ghi A để trỏ đến ứng dụng của bạn không được hỗ trợ. Để đảm bảo tên miền của bạn luôn trỏ chính xác vào lưới định tuyến, hãy định cấu hình tên miền phụ (ví dụ www trong www.example.org) bằng bản ghi CNAME:

If the app is on…   Then CNAME the subdomain to
Bamboo  yourapp.heroku.com
Cedar   yourapp.herokuapp.com

Nên tránh các tên miền trần (hoặc trần / apex) (ví dụ example.org) vì tính sẵn có và hậu quả thời gian hoạt động của chúng.

Tại sao tôi không thể thêm tên miền phụ.mydomain.com cho ứng dụng của mình?

Trong một số trường hợp, các nỗ lực để thêm một tên miền tùy chỉnh (như tên miền phụ.mydomain.com) cho một ứng dụng có thể dẫn đến một lỗi như thế này:

 ! mydomain.com is owned by another user

Tất cả các ứng dụng cho một miền cơ sở nhất định phải được sở hữu bởi cùng một tài khoản Heroku. Lỗi trên có nghĩa là người khác đã thêm tên miền tùy chỉnh mydomain.com vào một trong các ứng dụng của họ.


1
Địa chỉ IP và địa chỉ web cho Heroku sẽ là appname.heroku.com hoặc proxy.heroku.com?
Andrew Latham

1
Bạn thực sự nên xem bài viết này, devcenter.heroku.com/articles/custom-domains , vì nó bao gồm mọi thứ bạn đang muốn làm.
kobaltz

1
Cách tiếp cận này trỏ CNAME wwwđến @ vẫn định tuyến lưu lượng truy cập đến các địa chỉ IP cố định (có tất cả các nhược điểm giống như bản ghi A). Thay vào đó, hãy sử dụng chuyển hướng cấp cao nhất, trên GoDaddy, đây được gọi là "chuyển tiếp".
Ryan Daigle

5

Nếu bạn đã thiết lập địa chỉ IP trên tên miền trần trụi và www cname của bạn cho yourappname.herokuapp.com thì tất cả những gì bạn cần là sử dụng một cái gì đó như RackRewrite trong ứng dụng của bạn để chuyển hướng các yêu cầu khi chúng đến ứng dụng của bạn.

Những gì bạn muốn thiết lập là bất kỳ yêu cầu nào đối với miền trần được chuyển hướng đến địa chỉ www của bạn. Sau khi làm theo các hướng dẫn cài đặt, thêm một trình khởi tạo trong cấu hình / khởi tạo

 ApplicationName::Application.config.middleware.insert_before(Rack::Lock, Rack
 r301 %r{.*}, 'http://www.yourdomain.com$&', :if => Proc.new {|rack_env
  rack_env['SERVER_NAME'] != 'www.yourdomain.com'
 }
 end if Rails.env == 'production'

Điều đó có nghĩa là, nếu URL được yêu cầu không phải là www.yourdomain.com thì 301 chuyển hướng nó đến www.yuordomain.com mà chỉ khi nó đang chạy trong sản xuất.


1
Lý tưởng nhất, điều này được thực hiện ở cấp DNS để tránh chuyến đi qua các địa chỉ IP cố định của Heroku. Thêm vào đó, không chắc đây có phải là ứng dụng Ruby hay không?
Ryan Daigle

Ryan, chuyển hướng không thể được thực hiện ở cấp độ DNS. Chúng luôn được thực hiện bởi HTTP.
Emil Vikström

Tại sao là một trình khởi tạo và tại sao không đặt nó trong cấu hình môi trường sản xuất?
ckarbass

Khi tôi sử dụng heroku + miền yêu cầu của mình, tôi có phải có bất kỳ bản ghi A nào chỉ vào heroku không? Nếu có, giá trị của nó là gì?
Alan Coromano

3

Để làm việc với Giải pháp Mạng, hãy làm như sau:

Giải pháp mạng trỏ yourdomain.com đến www.yourdomain.com. Đây là cách.

  1. Trong Trình quản lý tài khoản , chọn Tên miền của tôi

  2. Chọn tên miền mà bạn muốn quản lý

  3. Trong hộp màu lục, chọn Thay đổi điểm miền

  4. Chọn DNS nâng cao , sau đó Tiếp tục

  5. Đầu tiên, chỉnh sửa Bản ghi A bằng cách chọn Chỉnh sửa Bản ghi A

    Đối với "@ none", nhập địa chỉ IP sau 205.178.189.129, xóa các bản ghi cho "www" và "* (Tất cả các loại khác)" , sau đó chọn Tiếp tục

  6. Thứ hai, chỉnh sửa Bí danh Máy chủ (bản ghi CNAME) bằng cách chọn Chỉnh sửa Bản ghi CNAME

    Nhập "www" vào cột Bí danh

    Đặt TTL thành 7200 nhưng trên cùng một dòng, hãy nhập các máy chủ tên được cung cấp bởi dịch vụ viết blog trong phần Máy chủ lưu trữ khác [IE SAU HƯỚNG DẪN HEROKU NGAY BÂY GIỜ www -> yourapp.herokuapp.com (Cổng xếp chồng)

    Chọn tiếp tục

Bây giờ hãy đợi và kiểm tra (các) tên miền bằng lệnh terminal sau:

host domain.com
host www.domain.com
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.