Bài đăng trên blog " Dịch vụ 'tinyurl' cho tên miền của bạn " giải thích cách thiết lập dịch vụ ShortName cho tên miền của bạn bằng Google Apps. Ví dụ: nếu tên miền của bạn example.com
và bạn sử dụng Google Apps, bạn có thể định cấu hình tên miền đó là http://go.example.com
dịch vụ ShortName cá nhân của doanh nghiệp bạn.
LƯU Ý: Đây không phải là về việc tạo ra một dịch vụ "tinyurl" cho thế giới sử dụng. Điều này là cho một doanh nghiệp.
Thật hữu ích khi có một dịch vụ tên ngắn mà chỉ người dùng của bạn mới có thể sử dụng để bạn có thể tạo liên kết đến các trang nội bộ. Thay vì nói với mọi người một URL dài khó khăn, bạn có thể nói, "Thực đơn bữa trưa hôm nay là tại http://go.example.com/lunch ". Blog đăng tài liệu một số lợi ích của việc trao quyền cho mọi người để thiết lập liên kết của riêng họ. (Quan trọng nhất: họ không phải làm phiền BẠN để thiết lập một liên kết mới!)
Vấn đề
Vấn đề với hệ thống là URL vẫn còn khá dài. Mọi người thà gõ "go / lunch" vào trình duyệt web của họ và để nó hoạt động. Đáng buồn thay, Google Apps không thể hỗ trợ điều này vì tính kỹ thuật về cách thức hoạt động của giao thức HTTP. Tiêu đề "Máy chủ:" trong HTTP 1.1 liệt kê tên miền mà người dùng đã nhập vào trình duyệt web của họ, không phải FQDN . Nói cách khác, khi Google Apps nhận được yêu cầu HTTP cho " http: // go / lunch ", máy chủ web sẽ nhận được "go" làm tên máy chủ. Vì Google Apps đang cung cấp dịch vụ này cho nhiều tên miền, nên không thể biết bạn muốn go.example.com
hay go.some-other-example.com
.
Do đó, người dùng phải nhập "go.example.com/lunch" mỗi lần, dài hơn nhiều so với "đi / ăn trưa".
Giải pháp
Google có thể giải quyết điều này bằng cách sử dụng cookie web hoặc một số chương trình khác. Không ai trong số đó là đặc biệt sạch sẽ hoặc dễ dàng. Cho đến khi họ làm bạn có thể giải quyết vấn đề bằng cách thiết lập một cỗ máy của riêng bạn chấp nhận các yêu cầu là "đi" và chuyển hướng chúng.
Máy chủ chấp nhận các yêu cầu HTTP cho một trang web gọi là "go" và chuyển hướng yêu cầu đến go.example.com
. Sau đó, bạn tạo các bản ghi DNS phù hợp để nó hoạt động và xoay vòng các cấu hình DHCP của bạn để máy tính xách tay / máy trạm của bạn làm đúng.
Điểm quan trọng của tài liệu Server Fault này là giải thích quy trình sau đó đưa ra các ví dụ cấu hình để giúp bạn làm điều này cho trang web của mình. Vì tôi không có quyền truy cập hoặc kiến thức về mọi hệ điều hành trên thế giới, nên tôi biến đây thành một "wiki cộng đồng" để mọi người có thể điền vào các đoạn cấu hình khi họ làm cho nó hoạt động. Tôi đã đặt 'TODO' trong khu vực đặc biệt cần cải thiện.
Chi tiết
Trong ví dụ này, chúng tôi sẽ sử dụng "example.com" làm tên miền.
Bước 1: Thiết lập dịch vụ Google Apps theo cách thông thường.
Cấu hình dịch vụ go.example.com
như bình thường. Kiểm tra nó và đảm bảo một URL như http://go.example.com/foo
hoạt động. Đừng tiếp tục nếu điều này không hoàn thành. Điều đó sẽ giống như cố gắng sửa chữa chiếc xe của bạn trước khi bạn sở hữu một chiếc.
Bước 2: Chọn tên máy chủ chuyển hướng của bạn
Nếu dịch vụ tên ngắn của bạn là go.example.com
, lý tưởng nhất là bạn tạo tên của người chuyển hướng của bạn go.example.com
. Đáng buồn thay, vật lý ngăn hai cơ thể ở cùng một vị trí cùng một lúc và DNS tuân theo các định luật vật lý.
Mẹo nhỏ là để bộ chuyển hướng có cùng tên máy chủ với dịch vụ ShortName, nhưng trong một miền khác. Ví dụ, go.corp.example.com
, go.ext.google.com
, hoặc go.this-is-different.example.com
.
Các công ty lớn thường có một tên miền phụ nội bộ không được tiếp xúc với thế giới bên ngoài. Thông thường máy chủ nội bộ là INSIDEHOST.corp.google.com
. Đó là nơi bạn đặt bộ chuyển hướng.
Một số công ty phân bổ một tên miền phụ chứa đầy CNAME trỏ đến các dịch vụ nên được truy cập từ cả bên trong và bên ngoài công ty. Theo cách đó, có một tên miền phụ cần được đặt trong đường dẫn tìm kiếm DNS của mọi người. (Người Unix có thể nghĩ về điều này như /usr/local/bin
là một thư mục con chứa đầy các liên kết tượng trưng) Theo truyền thống, tên miền phụ này là ext.example.com
. Trong subdomain mà CNAME như mail.ext.example.com
, calendar.ext.example.com
, vpn.ext.example.com
, và vân vân.)
Cảnh báo: Thêm một mục khác vào đường dẫn tìm kiếm DNS của bạn là một cách khác để làm cho máy tính của bạn chạy chậm hơn. Thực hiện một truy vấn DNS bổ sung MERYI LẦN chậm và lướt web sẽ chậm hơn đáng kể. Sẽ tốt hơn nhiều khi thêm trình chuyển hướng này vào một tên miền phụ đã có trong đường dẫn tìm kiếm DNS của máy của bạn, ngay cả khi điều này có nghĩa là thêm một CNAME trong nhiều tên miền phụ. Ví dụ: nếu các máy nội bộ và máy được kết nối với VPN của bạn đã có corp.example.com
trong đường dẫn tìm kiếm của chúng, hãy thêm CNAME vào đó. Nếu bạn muốn các máy bên ngoài không được VPN có thể truy cập vào bộ chuyển hướng, thì có thể lạ khi mã cứng corp.example.com
vào đường dẫn tìm kiếm của chúng nếu đó là tên miền phụ cho các máy không bao giờ được truy cập từ bên ngoài. Trong trường hợp đó, một CNAME khác có thể được thêm vào một tên miền phụ bên ngoài (nhưext.example.com
) để chỉ đến bộ chuyển hướng. Cập nhật cấu hình máy chủ web để hỗ trợ cả hai.
Trong ví dụ này, giả sử bạn đã chọn rằng bộ chuyển hướng sẽ là go.ext.example.com
. Máy có thể được gọi là bất cứ thứ gì bạn muốn, chúng tôi sẽ thực hiện mọi điều kỳ diệu trong DNS và cấu hình máy chủ web.
Bước 3: Lập kế hoạch cho chuyển hướng của bạn
Máy chủ web bạn sắp thiết lập có thể nằm trên một máy chủ web hiện có hoặc một máy chủ mới được xây dựng chỉ cho mục đích này. Điều quan trọng là máy phải có thể truy cập từ bất cứ nơi nào bạn muốn dịch vụ ShortName hoạt động: bên trong công ty, bên ngoài công ty, khi người dùng được kết nối qua VPN. (Bạn có thể chọn từ bỏ việc này hoạt động từ bên ngoài công ty vì lý do bảo mật. Bạn cũng có thể, vì lý do bảo mật, thiết lập một máy ở bên trong và một máy khác ở bên ngoài.)
Lưu ý: Bạn không phải thiết lập máy chủ web mới cho việc này. Bạn có thể thêm nó vào một máy chủ web có sẵn miễn là cấu hình không tồn tại.
Lưu ý: Điều này có thể khá phức tạp. Bạn có thể muốn tập trung vào việc làm việc này trong trường hợp đơn giản nhất, sau đó một khi làm việc và thử nghiệm, hãy làm cho nó hoạt động cho các tình huống khác. Cụ thể, làm cho nó hoạt động theo thứ tự này: 1. máy trạm / máy tính xách tay bên trong công ty 2. THEN máy được kết nối bằng VPN, sau đó máy bên ngoài công ty (ví dụ: tại một quán cà phê Internet). 3. THEN máy bên ngoài mạng, không có VPN lên 4. THEN kiểm tra điều này cho các hệ điều hành khác
Trong ví dụ này, chúng tôi sẽ cho rằng có một máy chủ web có thể truy cập tại cùng một địa chỉ IP cho dù bạn ở trong hay ngoài công ty.
Trong ví dụ "go. Corp .example.com" của chúng tôi , điều này có nghĩa là "go" nằm trong một tên miền phụ chỉ có thể truy cập được đối với người trong cuộc và yêu cầu VPN sử dụng dịch vụ ShortName. Vì Google Apps thường được định cấu hình để hoạt động mà không cần VPN (vì tất cả quyền truy cập là HTTPS), nên điều này là tối ưu.
Trong "đi. Chúng tôi ext : example.com" Ví dụ, phương tiện này các tên miền phụ có thể truy cập từ cả bên trong và bên ngoài công ty, và các A
điểm ghi vào một địa chỉ IP bên ngoài.
Bước 4: Thêm bản ghi DNS cho trình chuyển hướng của bạn
Dưới đây là các bản ghi DNS cần thiết:
go.example.com. IN CNAME ghs.google.com.
go.ext.example.com. IN A 64.32.179.5
go-redirector.example.com IN A 64.32.179.5
Bản ghi DNS đầu tiên (go.example.com) phải tồn tại như một phần của Bước 1.
Bản ghi DNS thứ hai (đi. Ext example.com) là một A
trỏ kỷ lục tại địa chỉ IP của máy chủ web mới bạn đang cấu hình.
Bản ghi DNS thứ ba (go-redirector) là để giúp bạn khi gỡ lỗi.
Bước 5: Cấu hình máy chủ web
Thêm chuyển hướng đến máy chủ web. (Điều này giả sử máy chủ web đã được cài đặt và đang chạy).
Đây là đoạn cấu hình Apache:
<VirtualHost *:80>
ServerName go-redirector.example.com
ServerAlias go, go.ext, go.ext.example
RewriteEngine on
RewriteRule ^(.*)$ http://go.example.com$1 [R=permanent]
</VirtualHost>
Làm thế nào để kiểm tra điều này. http://go-redirector.example.com
nên làm việc vào thời điểm này
Không tiến hành cho đến khi thử nghiệm này hoạt động. Bước chân em bé.
Bước 6: Định cấu hình đường dẫn tìm kiếm DNS của khách hàng
Bây giờ chúng tôi sẽ định cấu hình máy (mọi thứ chạy trình duyệt web) để đường dẫn tìm kiếm DNS bao gồm "ext.example.com"
Trên máy chủ DHCP và máy chủ VPN của bạn gửi đường dẫn tìm kiếm DNS:
corp.example.com.
(tên miền phụ với máy chủ chuyển hướng, theo sau là ".")
Ngoài ra, bạn có thể sử dụng đường dẫn tìm kiếm như:
corp.example.com example.com.
Tuy nhiên, điều đó sẽ thêm một tra cứu DNS bổ sung cho MỌI trang web mà chúng tôi truy cập. Vì họ sẽ thất bại 99% thời gian, điều đó sẽ khiến việc lướt web chậm lại.
Trên máy trạm và máy tính xách tay, bạn cần đảm bảo rằng tên miền phụ được bao gồm trong đường dẫn tìm kiếm DNS của chúng. Theo cách đó, khi người dùng gõ "go", phần mềm sẽ tìm thấy nó trong miền.
Chúng tôi muốn định cấu hình đường dẫn tìm kiếm của máy để bao gồm tên miền phụ này theo mọi cách mà đường dẫn tìm kiếm có thể được đặt:
Ban đầu, đường dẫn tìm kiếm DNS không thể được đặt qua DHCP. Đây là một tính năng mới được thêm vào và không phải tất cả các máy khách DHCP đều hỗ trợ nó. Ngay cả các máy khách DHCP hỗ trợ cũng cần phải sửa đổi vì khi máy tính xách tay ở (ví dụ) một quán cà phê Internet, nó đang nói chuyện với máy chủ DHCP mà bạn không kiểm soát. Khi máy tính xách tay sử dụng VPN, phần mềm máy khách VPN không thực sự sử dụng DHCP nhưng thường có một số cách mà máy chủ VPN truyền các cài đặt mà người ta thường nhận được từ máy chủ DHCP.
Do đó, bạn muốn đặt đường dẫn tìm kiếm DNS ở tất cả các vị trí sau:
- Máy chủ DHCP sẽ gửi các tùy chọn đường dẫn tìm kiếm DNS
- Các máy được cấu hình tĩnh phải được đặt đường dẫn tìm kiếm DNS
- Các máy khách sử dụng DHCP phải được cấu hình để đặt trước
corp.example.com
tên miền vào đường dẫn tìm kiếm của chúng nếu máy chủ DHCP chưa bao gồm tên miền đó.
Dưới đây là hướng dẫn về cách thực hiện việc này trên các máy chủ DHCP và hệ điều hành khác nhau.
Định cấu hình máy chủ DHCP để bao gồm Đường dẫn tìm kiếm DNS:
- Hướng dẫn Windows DHCP
LÀM
- Hướng dẫn DHCP ISC
Nếu đường dẫn tìm kiếm chỉ là miền mà máy nên ở, thì:
option domain-name "corp.example.com";
Nếu các máy khách hỗ trợ RFC 3397 để cung cấp đường dẫn tìm kiếm, thì bạn có thể làm điều này, nhưng thật bất tiện vì không có hỗ trợ riêng cho loại dữ liệu là một chuỗi các máy chủ DNS, mỗi loại được mã hóa dưới dạng nhãn có tiền tố dài như trong DNS. Không có cách nào để viết các giá trị của một tùy chọn được xác định là một mảng các bản ghi, trong đó bản ghi chứa một mảng của một bản ghi khác, vì vậy bạn sẽ sử dụng chuỗi dữ liệu để mã hóa mọi thứ theo cách thủ công.
option dns-search-domains code 119 = string;
option dns-search-domains concat(
encode-int(4,1), "corp", encode-int(7,1), "example", encode-int(3,1), "com", encode-int(0,1),
encode-int(7,1), "example", encode-int(3,1), "com", encode-int(0,1)
);
mà nên (chưa được kiểm tra) tạo ra một danh sách tìm kiếm hai mục.
- hướng dẫn DHCP dnsmasq
LÀM
Cấu hình máy cấu hình tĩnh:
- các cửa sổ
LÀM
- Linux / Unix
Chỉnh sửa /etc/resolv.conf
và đảm bảo (1) "domain corp.example.com" là dòng đầu tiên, (2) thêm / chỉnh sửa dòng "tìm kiếm" để bao gồm corp.example.com
tên miền, (3) thêm một dòng "tùy chọn ndote: 2" vào giảm tải cho máy chủ DNS của bạn.
domain corp.example.com
search corp.example.com exmaple.com
options ndots:2
Cấu hình máy khách DHCP hoạt động khi trên các máy chủ DHCP khác
TODO điền vào Windows, Linux, v.v.
Bước 7: Kiểm tra, kiểm tra, kiểm tra!
Bây giờ người dùng sẽ có thể chỉ định:
http: // go / foo http: //go.example/foo http://go.example.com/foo
Trên thực tế, dưới dạng kiểm tra độ tin cậy, bạn sẽ muốn kiểm tra các URL đó trong mọi tình huống:
( each OS you support ) * ( internal LAN / at an Internet cafe / while on the VPN )
Bước 8: Lời khuyên khác
Và cuối cùng, một lời khuyên: Ngay cả khi bạn đã hoàn thành công việc này, bạn vẫn có nguy cơ http://go/foo
liên kết không hoạt động khi một người cố gắng nhập nó trên máy tính mà bạn không định cấu hình để buộc tìm kiếm DNS đường dẫn để bao gồm tên miền của bạn. Do đó, bạn nên xuất bản các liên kết bằng URL đầy đủ : http://go.example.com/foo
; và dành thời gian để giáo dục bộ phận PR của công ty bạn và những người khác để luôn chỉ định nó theo cách đó.
Hoặc ít nhất là mã hóa chúng trong HTML để "go" hiển thị trong văn bản liên kết, nhưng HREF thực tế đi đến FQDN:
<a href="http://go.example.com/lunch">go/lunch</a>
Dạy những người trong bộ phận PR để làm điều này có thể khó khăn. Bạn có thể chỉ muốn nói với họ rằng họ phải sử dụng phiên bản dài ( go.example.com
) trong bất cứ điều gì họ viết vì "đi / ăn trưa" ngắn chỉ hoạt động một cách tình cờ.
Bước 8: HTTPS
TODO: Tìm ra cách thực hiện với HTTPS (các chứng chỉ sẽ rất khó, nếu không nói là không thể, để có được quyền).