บล็อกโพสต์ " บริการ 'tinyurl' สำหรับโดเมนของคุณ " อธิบายถึงวิธีการตั้งค่าบริการ ShortName สำหรับโดเมนของคุณโดยใช้ Google Apps ตัวอย่างเช่นหากโดเมนของคุณคือexample.com
และคุณใช้ Google Apps คุณสามารถกำหนดค่าเพื่อให้http://go.example.com
บริการ ShortName ส่วนบุคคลขององค์กรของคุณ
หมายเหตุ: นี่ไม่เกี่ยวกับการสร้างบริการ "tinyurl" เพื่อให้โลกใช้ นี่สำหรับองค์กร
มีประโยชน์ที่จะมีบริการชื่อย่อที่ผู้ใช้ของคุณเท่านั้นที่สามารถใช้เพื่อให้คุณสามารถสร้างลิงก์ไปยังหน้าภายใน แทนที่จะบอก URL ที่ยากต่อคนอื่น ๆ คุณสามารถพูดได้ว่า "เมนูอาหารกลางวันของวันนี้อยู่ที่http://go.example.com/lunch " บล็อกโพสต์เอกสารประโยชน์บางอย่างของการเสริมอำนาจคนในการตั้งค่าลิงค์ของตนเอง (สำคัญที่สุด: พวกเขาไม่ต้องรบกวนคุณในการตั้งค่าลิงค์ใหม่!)
ปัญหา
ปัญหาของระบบคือ URL นั้นยังค่อนข้างยาว ผู้คนต้องการพิมพ์ "go / lunch" ลงในเว็บเบราว์เซอร์และใช้งานได้ น่าเศร้าที่ Google Apps ไม่สามารถรองรับสิ่งนี้ได้เนื่องจากมีเทคนิคในการทำงานของโปรโตคอล HTTP "การ Host:" ในส่วนหัว HTTP 1.1 รายชื่อโดเมนที่ผู้ใช้พิมพ์ลงในเว็บเบราว์เซอร์ของพวกเขาไม่ได้เป็นFQDN กล่าวอีกนัยหนึ่งเมื่อ Google Apps ได้รับคำขอ HTTP สำหรับ " http: // go / lunch " เว็บเซิร์ฟเวอร์จะได้รับ "go" เป็นชื่อโฮสต์ เนื่องจาก Google Apps ให้บริการนี้สำหรับหลาย ๆ โดเมนจึงไม่สามารถบอกได้ว่าคุณต้องการgo.example.com
หรือgo.some-other-example.com
ไม่
ดังนั้นผู้ใช้ต้องพิมพ์ "go.example.com/lunch" ทุกครั้งซึ่งยาวกว่า "go / lunch" มาก
การแก้ไขปัญหา
Google สามารถแก้ปัญหานี้ได้โดยใช้เว็บคุกกี้หรือรูปแบบอื่น ๆ ไม่มีสิ่งใดที่สะอาดหรือง่ายเป็นพิเศษ จนกว่าพวกเขาจะสามารถแก้ปัญหาได้โดยการตั้งค่าเครื่องของคุณเองที่ยอมรับคำขอเป็น "ไป" และเปลี่ยนเส้นทางพวกเขา
เซิร์ฟเวอร์รับคำขอ HTTP สำหรับเว็บไซต์ที่เรียกว่า "ไป" go.example.com
และการเปลี่ยนเส้นทางการร้องขอไปยัง จากนั้นคุณสร้างระเบียน DNS ที่ถูกต้องเพื่อให้ทำงานได้และปรับการกำหนดค่า DHCP ของคุณซ้ำเพื่อให้แล็ปท็อป / เวิร์กสเตชันของคุณทำสิ่งที่ถูกต้อง
จุดของเอกสาร Server Fault นี้คือการอธิบายกระบวนการจากนั้นให้ตัวอย่างการกำหนดค่าเพื่อช่วยคุณทำสิ่งนี้กับเว็บไซต์ของคุณ เนื่องจากฉันไม่สามารถเข้าถึงหรือมีความรู้เกี่ยวกับระบบปฏิบัติการทุกระบบในโลกฉันจึงทำให้นี่เป็น "ชุมชนวิกิ" เพื่อให้ผู้คนสามารถกรอกข้อมูลตัวอย่างการกำหนดค่าเพื่อใช้งานได้ ฉันใส่ 'สิ่งที่ต้องทำ' ในพื้นที่ที่ต้องการการปรับปรุงเป็นพิเศษ
รายละเอียด
ในตัวอย่างนี้เราจะใช้ "example.com" เป็นโดเมน
ขั้นตอนที่ 1: ตั้งค่าบริการ Google Apps ตามปกติ
กำหนดค่าบริการgo.example.com
ตามปกติ ทดสอบและตรวจสอบให้แน่ใจว่า URL เหมือนใช้http://go.example.com/foo
งานได้ อย่าดำเนินการต่อหากยังไม่เสร็จสมบูรณ์ นั่นเป็นเหมือนการพยายามซ่อมรถของคุณก่อนที่คุณจะเป็นเจ้าของ
ขั้นตอนที่ 2: เลือกชื่อโฮสต์ตัวเปลี่ยนเส้นทางของคุณ
หากบริการชื่อย่อของคุณคือgo.example.com
คุณควรสร้างชื่อของผู้เปลี่ยนเส้นทางของgo.example.com
คุณ น่าเศร้าที่ฟิสิกส์ป้องกันไม่ให้ร่างสองร่างอยู่ในสถานที่เดียวกันในเวลาเดียวกันและ DNS ปฏิบัติตามกฎหมายของฟิสิกส์
เคล็ดลับคือการให้ตัวเปลี่ยนเส้นทางเป็นชื่อโฮสต์เดียวกับบริการ ShortName แต่อยู่ในโดเมนอื่น ยกตัวอย่างเช่นgo.corp.example.com
, หรือgo.ext.google.com
go.this-is-different.example.com
บริษัท ขนาดใหญ่มักจะมีโดเมนย่อยภายในที่ไม่ได้สัมผัสกับโลกภายนอก INSIDEHOST.corp.google.com
มักจะเป็นเจ้าภาพภายใน นั่นคือที่ที่คุณวางตัวเปลี่ยนเส้นทาง
บริษัท บางแห่งจัดสรรโดเมนย่อยที่เต็มไปด้วย CNAME ที่ชี้ไปยังบริการที่ควรเข้าถึงได้จากทั้งภายในและภายนอก บริษัท วิธีนี้จะมีโดเมนย่อยหนึ่งโดเมนที่ต้องใส่ใน searchpath DNS ของผู้คน (คน Unix สามารถคิดนี้ว่ามีความ/usr/local/bin
เป็นไดเรกทอรีย่อยเต็มรูปแบบของ symlinks) ext.example.com
ตามเนื้อผ้าโดเมนย่อยนี้อยู่ ในโดเมนย่อยที่มี CNAMEs เช่นmail.ext.example.com
, calendar.ext.example.com
, vpn.ext.example.com
และอื่น ๆ .)
คำเตือน: การเพิ่มรายการอื่นในเส้นทางการค้นหา DNS ของคุณเป็นอีกวิธีหนึ่งที่ทำให้คอมพิวเตอร์ของคุณทำงานช้าลง การทำแบบสอบถาม DNS เพิ่มเติมทุกเวลาช้าและการท่องเว็บจะช้าลงอย่างเห็นได้ชัด เป็นการดีกว่ามากหากคุณเพิ่มตัวเปลี่ยนเส้นทางนี้ไปยังโดเมนย่อยที่อยู่ในเส้นทางการค้นหา DNS ของเครื่องของคุณแม้ว่าจะหมายถึงการเพิ่ม CNAME ในหลายโดเมนย่อย ตัวอย่างเช่นหากเครื่องภายในและเครื่องของคุณเชื่อมต่อกับ VPN ของคุณcorp.example.com
อยู่ในเส้นทางการค้นหาของพวกเขาแล้วเพิ่ม CNAME ที่นั่น หากคุณต้องการให้เครื่องภายนอกที่ไม่ได้ใช้ VPN เพื่อให้สามารถเข้าถึงตัวเปลี่ยนเส้นทางมันอาจเป็นเรื่องยากที่จะเขียนโค้ดcorp.example.com
ลงในพา ธ การค้นหาหากเป็นโดเมนย่อยสำหรับเครื่องที่ไม่เคยเข้าถึงจากภายนอก ในกรณีนั้น CNAME อื่นสามารถเพิ่มในโดเมนย่อยภายนอก (เช่นext.example.com
) เพื่อชี้ไปที่ตัวเปลี่ยนเส้นทาง อัพเดตการกำหนดค่าเว็บเซิร์ฟเวอร์เพื่อสนับสนุนทั้งสอง
go.ext.example.com
ตัวอย่างนี้สมมติว่าคุณเลือกที่เปลี่ยนเส้นทางจะ เครื่องสามารถเรียกสิ่งที่คุณต้องการเราจะทำทุกอย่างมหัศจรรย์ใน DNS และการกำหนดค่าเว็บเซิร์ฟเวอร์
ขั้นตอนที่ 3: การวางแผนสำหรับตัวเปลี่ยนเส้นทางของคุณ
เว็บเซิร์ฟเวอร์ที่คุณกำลังจะติดตั้งสามารถอยู่บนเว็บเซิร์ฟเวอร์ที่มีอยู่หรือสร้างขึ้นมาใหม่เพื่อจุดประสงค์นี้ กุญแจสำคัญคือต้องสามารถเข้าถึงเครื่องได้จากทุกที่ที่คุณต้องการให้บริการ ShortName ทำงานได้: ภายใน บริษัท นอก บริษัท เมื่อผู้ใช้เชื่อมต่อผ่าน VPN (คุณอาจเลือกที่จะสละการทำงานนี้จากนอก บริษัท เพื่อเหตุผลด้านความปลอดภัยนอกจากนี้คุณอาจตั้งค่าเครื่องหนึ่งไว้ที่ด้านในและด้านนอกเพื่อความปลอดภัย
หมายเหตุ: คุณไม่จำเป็นต้องตั้งค่าเว็บเซิร์ฟเวอร์ใหม่สำหรับสิ่งนี้ คุณสามารถเพิ่มสิ่งนี้ลงในเว็บเซิร์ฟเวอร์ที่มีอยู่แล้วได้ตราบใดที่ไม่มีการกำหนดค่า
หมายเหตุ: สิ่งนี้ค่อนข้างซับซ้อน คุณอาจต้องการมุ่งเน้นการทำงานนี้ในกรณีที่ง่ายที่สุดจากนั้นเมื่อทำงานและทดสอบแล้วให้ทำงานในสถานการณ์อื่น ๆ โดยเฉพาะให้ทำงานในลำดับนี้: 1. เวิร์กสเตชัน / แล็ปท็อปภายใน บริษัท 2. เครื่องที่เชื่อมต่อด้วย VPN จากนั้นเครื่องภายนอก บริษัท (ตัวอย่างเช่นที่ร้านอินเทอร์เน็ต) 3. จากนั้นเครื่องนอกเครือข่ายโดยไม่ต้องใช้ VPN ขึ้นไป 4. จากนั้นทดสอบสิ่งนี้สำหรับระบบปฏิบัติการอื่น ๆ
ในตัวอย่างนี้เราจะสมมติว่ามีเว็บเซิร์ฟเวอร์ที่สามารถเข้าถึงได้ในที่อยู่ IP เดียวกันไม่ว่าคุณจะอยู่ภายในหรือภายนอก บริษัท
ในตัวอย่าง "go. corp .example.com" ของเรานี่หมายความว่า "go" อยู่ในโดเมนย่อยที่เข้าถึงได้โดยบุคคลภายในและต้องการ VPN เพื่อใช้บริการ ShortName เนื่องจากโดยปกติแล้ว Google Apps จะได้รับการกำหนดค่าให้ทำงานโดยไม่ใช้ VPN (เนื่องจากการเข้าถึงทั้งหมดเป็น HTTPS) นี่จึงเป็นสิ่งที่ดีที่สุด
ในตัวอย่าง "go. ext .example.com" ของเราหมายความว่าโดเมนย่อยสามารถเข้าถึงได้จากทั้งภายในและภายนอก บริษัท และA
จุดบันทึกไปยังที่อยู่ IP ภายนอก
ขั้นตอนที่ 4: เพิ่มระเบียน DNS สำหรับตัวเปลี่ยนเส้นทางของคุณ
นี่คือระเบียน DNS ที่ต้องการ:
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
ระเบียน DNS แรก (go.example.com) ควรมีอยู่แล้วซึ่งเป็นส่วนหนึ่งของขั้นตอนที่ 1
ระเบียน DNS ที่สอง (go. ext .example.com) เป็นA
ระเบียนที่ชี้ไปยังที่อยู่ IP ของเว็บเซิร์ฟเวอร์ใหม่ที่คุณกำลังกำหนดค่า
ระเบียน DNS ที่สาม (go-redirector) คือการช่วยเหลือคุณเมื่อทำการดีบัก
ขั้นตอนที่ 5: กำหนดค่าเว็บเซิร์ฟเวอร์
เพิ่มการเปลี่ยนเส้นทางไปยังเว็บเซิร์ฟเวอร์ (สิ่งนี้ถือว่าเว็บเซิร์ฟเวอร์ได้รับการติดตั้งและใช้งานแล้ว)
นี่คือตัวอย่างการกำหนดค่า 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>
วิธีทดสอบนี้ http://go-redirector.example.com
ควรทำงานในจุดนี้
อย่าดำเนินการต่อไปจนกว่าการทดสอบนี้จะได้ผล ขั้นตอนทารก
ขั้นตอนที่ 6: กำหนดค่าเส้นทางการค้นหา DNS ของลูกค้า
ตอนนี้เรากำลังจะกำหนดค่าเครื่อง (อะไรก็ตามที่เรียกใช้เว็บเบราว์เซอร์) เพื่อให้เส้นทางการค้นหา DNS มี "ext.example.com"
บนเซิร์ฟเวอร์ DHCP และเซิร์ฟเวอร์ VPN ของคุณส่งเส้นทางการค้นหา DNS นั่นคือ:
corp.example.com
(โดเมนย่อยที่มีโฮสต์การเปลี่ยนเส้นทางตามด้วย ".")
หรือคุณสามารถใช้พา ธ การค้นหาเช่น:
corp.example.com example.com
อย่างไรก็ตามนั่นจะเป็นการเพิ่มการค้นหา DNS เพิ่มเติมสำหรับหน้าเว็บทุก ๆ เนื่องจากพวกเขาจะล้มเหลว 99% ของเวลานั่นเป็นเพียงการทำให้การท่องเว็บช้าลง
ในเวิร์กสเตชันและแล็ปท็อปคุณต้องแน่ใจว่าโดเมนย่อยนั้นรวมอยู่ในพา ธ การค้นหา DNS ของพวกเขา ด้วยวิธีนี้เมื่อผู้ใช้พิมพ์ "ไป" ซอฟต์แวร์จะค้นหาในโดเมน
เราต้องการกำหนดค่าเส้นทางการค้นหาของเครื่องเพื่อรวมโดเมนย่อยนี้ทุกวิธีที่อาจตั้งค่าเส้นทางการค้นหา:
แต่เดิมเส้นทางการค้นหา DNS ไม่สามารถตั้งค่าผ่าน DHCP ได้ นี่เป็นคุณลักษณะที่เพิ่งเพิ่มเข้ามาและไม่ใช่ไคลเอ็นต์ DHCP ทั้งหมดที่สนับสนุน แม้แต่ไคลเอนต์ DHCP ที่รองรับก็จำเป็นต้องแก้ไขเพราะเมื่อแล็ปท็อปอยู่ที่ (เช่น) อินเทอร์เน็ตคาเฟ่ก็กำลังคุยกับเซิร์ฟเวอร์ DHCP ที่คุณไม่ได้ควบคุม เมื่อแล็ปท็อปใช้ VPN ซอฟต์แวร์ไคลเอนต์ VPN ไม่ได้ใช้ DHCP แต่มักจะมีวิธีที่เซิร์ฟเวอร์ VPN ส่งการตั้งค่าที่มักจะได้รับจากเซิร์ฟเวอร์ DHCP
ดังนั้นคุณต้องการตั้งค่าเส้นทางการค้นหา DNS ในสถานที่เหล่านี้ทั้งหมด:
- เซิร์ฟเวอร์ DHCP ควรส่งตัวเลือกเส้นทางการค้นหา DNS
- เครื่องที่กำหนดค่าแบบคงที่ควรมีการตั้งค่าเส้นทางการค้นหา DNS
- ลูกค้าที่ใช้ DHCP ควรได้รับการกำหนดค่าให้พาด
corp.example.com
โดเมนในเส้นทางการค้นหาของพวกเขาล่วงหน้าหากเซิร์ฟเวอร์ DHCP ไม่ได้รวมไว้แล้ว
ด้านล่างนี้เป็นคำแนะนำเกี่ยวกับวิธีการทำเช่นนี้ในเซิร์ฟเวอร์ DHCP และระบบปฏิบัติการต่างๆ
การกำหนดค่าเซิร์ฟเวอร์ DHCP เพื่อรวม DNS Search Path:
- คำแนะนำสำหรับ Windows DHCP
ทำ
- คำแนะนำ ISC DHCP
หากเส้นทางการค้นหาเป็นเพียงโดเมนที่เครื่องควรอยู่ในนั้น:
option domain-name "corp.example.com";
หากไคลเอนต์รองรับ RFC 3397 เพื่อระบุพา ธ การค้นหาคุณสามารถทำได้ แต่มันค่อนข้างงงงวยเนื่องจากไม่มีการสนับสนุนดั้งเดิมสำหรับชนิดข้อมูลซึ่งเป็นลำดับของโฮสต์ DNS แต่ละตัวจะเข้ารหัสเป็นป้ายกำกับความยาวที่ขึ้นต้นด้วย DNS ไม่มีวิธีการเขียนค่าของตัวเลือกที่กำหนดให้เป็นอาร์เรย์ของเรคคอร์ดโดยที่เรคคอร์ดนั้นมีอาเรย์ของเรคคอร์ดอื่นดังนั้นคุณสามารถใช้ data-string เพื่อเข้ารหัสสิ่งต่าง ๆ ด้วยตนเอง
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)
);
ซึ่งควร (ยังไม่ทดลอง) สร้างรายการค้นหาสองรายการ
- คำแนะนำ dnsmasq DHCP
ทำ
การกำหนดค่าเครื่องที่กำหนดค่าแบบสแตติก:
- ของ windows
ทำ
- Linux / Unix
แก้ไข/etc/resolv.conf
และตรวจสอบให้แน่ใจ (1) "domain corp.example.com" เป็นบรรทัดแรก (2) เพิ่ม / แก้ไขบรรทัด "ค้นหา" เพื่อรวมcorp.example.com
โดเมน (3) เพิ่มบรรทัด "options ndotes: 2" เพื่อ ลดภาระในเซิร์ฟเวอร์ DNS ของคุณ
domain corp.example.com
search corp.example.com exmaple.com
options ndots:2
การกำหนดค่าไคลเอ็นต์ DHCP ให้ทำงานเมื่ออยู่บนเซิร์ฟเวอร์ DHCP อื่น
สิ่งที่ต้องทำกรอกสำหรับ Windows, Linux และอื่น ๆ
ขั้นตอนที่ 7: ทดสอบทดสอบทดสอบ!
ตอนนี้ผู้ใช้ควรสามารถระบุ:
http: // go / foo http: //go.example/foo http://go.example.com/foo
อันที่จริงแล้วในการทดสอบความมั่นใจคุณจะต้องทดสอบ URL เหล่านั้นในทุกสถานการณ์:
( each OS you support ) * ( internal LAN / at an Internet cafe / while on the VPN )
ขั้นตอนที่ 8: คำแนะนำอื่น ๆ
และสุดท้ายคำแนะนำเพียงเล็กน้อย: แม้ว่าคุณจะทำสิ่งนี้ได้อย่างสมบูรณ์แบบคุณก็ยังมีความเสี่ยงที่http://go/foo
ลิงค์จะไม่ทำงานเมื่อมีคนพยายามพิมพ์ลงบนคอมพิวเตอร์ที่คุณไม่ได้กำหนดค่าให้บังคับใช้การค้นหา DNS เส้นทางที่จะรวมโดเมนของคุณ ดังนั้นคุณควรเผยแพร่ลิงค์โดยใช้ URL แบบเต็ม: http://go.example.com/foo
; และใช้เวลาในการศึกษาแผนกประชาสัมพันธ์ของ บริษัท ของคุณและคนอื่น ๆ เพื่อระบุวิธีนั้น
หรืออย่างน้อยก็เข้ารหัสเป็น HTML เพื่อให้ "go" ปรากฏในข้อความลิงก์ แต่ HREF จริงจะไปที่ FQDN:
<a href="http://go.example.com/lunch">go/lunch</a>
การสอนคนในแผนกประชาสัมพันธ์ให้ทำเช่นนี้อาจเป็นเรื่องยาก คุณอาจต้องการบอกพวกเขาว่าต้องใช้เวอร์ชันยาว ( go.example.com
) ในทุกสิ่งที่เขียนเพราะ "go / lunch" สั้น ๆ ใช้งานได้โดยไม่ตั้งใจ
ขั้นตอนที่ 8: HTTPS
สิ่งที่ต้องทำ: หาวิธีทำกับ HTTPS (การรับรองจะยากมากถ้าไม่เป็นไปไม่ได้ที่จะทำให้ถูกต้อง)