วิธีชี้โดเมนที่ต่างกัน 2 แห่งไปยัง 1 ที่อยู่ IP (Apache)


11

ฉันมีชื่อโดเมนที่ต่างกันสองชื่อซึ่งฉันต้องการโฮสต์ในพื้นที่ส่วนตัวที่ฉันมี ฉันต้องการให้พวกเขาชี้ไปที่ที่อยู่ IP เดียวกันและยังมีเนื้อหาที่แตกต่างกัน (แน่นอน) ฉันจะทำสิ่งนั้นได้อย่างไร มีวิธีอื่นในการทำเช่นนี้หรือไม่? ในกรณีที่เป็นวิธีที่ดีที่สุดคืออะไร ขอบคุณ

คำตอบ:


7

คุณอาจต้องการใช้ Virtual Hosting ของ Apache เป็นวิธีที่ได้รับการสนับสนุนอย่างดีสำหรับการโฮสต์โดเมนจำนวนมากด้วยที่อยู่ IP เดียว

http://httpd.apache.org/docs/2.2/vhosts/

โฮสต์เสมือนตามชื่อ: http://httpd.apache.org/docs/2.2/vhosts/name-based.html


14

Apache2 รองรับการให้บริการเนื้อหาที่แตกต่างกันขึ้นอยู่กับชื่อโดเมนแม้ว่าโดเมนทั้งหมดเหล่านั้นจะแก้ไขเป็นที่อยู่ IP เดียวกัน แต่ละชื่อโดเมนจะถูกจัดการโดยโฮสต์เสมือนจึงชื่อชื่อตามโฮสต์เสมือน

นี่คือตัวอย่างการกำหนดค่าสำหรับสองโดเมน:

NameVirtualHost *:80

<VirtualHost *:80>
  ServerName www.yourfirstdomain.tld
  DocumentRoot /www/yourfirstdomain.tld/
</VirtualHost>

<VirtualHost *:80>
  ServerName www.yourseconddomain.tld
  DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>

คุณจะพบเอกสารอย่างเป็นทางการในชื่อที่ใช้สนับสนุนโฮสต์เสมือนที่นี่

อย่างไรก็ตามโปรดทราบว่าสิ่งนี้จะใช้ได้กับการเชื่อมต่อ HTTP ธรรมดาเท่านั้นไม่ใช่กับ HTTPS (HTTP ผ่าน SSL): โฮสต์เสมือนที่ใช้ชื่อขึ้นอยู่กับการรู้ว่าต้องการชื่ออะไร แต่ Apache ไม่สามารถรู้ข้อมูลนี้ได้จนกว่าจะเข้ารหัส SSL สร้างการเชื่อมต่อแล้ว

หากคุณต้องการให้การตั้งค่าทำงานกับ HTTPS ด้วยคุณต้องพึ่งพาส่วนขยายของโปรโตคอล SSL ที่เรียกว่าServer Name Indication (SNI) ( RFC4366 ) โดยทั่วไปไคลเอนต์ที่เปิดใช้งาน SNI (เช่นเว็บเบราว์เซอร์) จะเพิ่มข้อมูลข้อความธรรมดาพิเศษเมื่อสร้างการเชื่อมต่อ SSL ที่เข้ารหัสทำให้เซิร์ฟเวอร์ทราบชื่อที่ถูกร้องขอก่อนการเชื่อมต่อ SSL จะพร้อมใช้งาน

เบราว์เซอร์ทั้งหมดยังไม่รองรับ SNI ในช่วงเวลาของการเขียนและตาม Wikipedia คนเหล่านี้จะ:

  • Internet Explorer 7 หรือใหม่กว่าบน Windows Vista หรือสูงกว่า (ไม่ทำงานบน XP แม้แต่ IE 8)
  • Mozilla Firefox 2.0 หรือใหม่กว่า
  • Opera 8.0 หรือใหม่กว่า (ต้องเปิดใช้งานโปรโตคอล TLS 1.1)
  • Opera Mobile อย่างน้อยรุ่น 10.1 เบต้าบน Android
  • Google Chrome (Vista หรือสูงกว่า, XP บน Chrome 6 หรือใหม่กว่า, OS X 10.5.7 หรือสูงกว่าบน Chrome 5.0.342.1 หรือใหม่กว่า)
  • Safari 2.1 หรือใหม่กว่า (Mac OS X 10.5.6 หรือสูงกว่าและ Windows Vista หรือสูงกว่า)
  • Konqueror / KDE 4.7 หรือใหม่กว่า
  • MobileSafari ใน Apple iOS 4.0 หรือใหม่กว่า
  • เบราว์เซอร์เริ่มต้น Android บน Honeycomb (v3.x) หรือใหม่กว่า
  • Windows Phone 7
  • MicroB บน Maemo

การโฮสต์หลายโฮสต์แบบเสมือนที่ใช้ชื่อโฮสต์ HTTPS ต้องให้คุณเปิดใช้งาน mod_ssl และเพิ่มการกำหนดค่าที่คล้ายกันในตัวอย่างด้านบน:

Listen 443      
NameVirtualHost *:443

# Accept connections for these vhosts from non-SNI clients
# Clients without SNI will be handled by the first defined vhost.
# If you only want SNI-enabled client, put on instead
SSLStrictSNIVHostCheck off

<VirtualHost *:443>
  ServerName www.yourfirstdomain.tld
  DocumentRoot /www/yourfirstdomain.tld/    
</VirtualHost>

<VirtualHost *:443>
  ServerName www.yourseconddomain.tld
  DocumentRoot /www/yourseconddomain.tld/
</VirtualHost>

โปรดจำไว้ว่าการใช้ SSL คุณจะต้องซื้อใบรับรอง SSL สำหรับโดเมนของคุณหรือเพื่อสร้างใบรับรองที่ลงชื่ออัตโนมัติและกำหนดค่า Apache ให้ใช้สำหรับการเชื่อมต่อ SSL


คุณบอกชื่อและพา ธ ของไฟล์การตั้งค่า apache2 ได้ไหม?
João Pimentel Ferreira

อย่าลืมรีสตาร์ท apache หลังจากการเปลี่ยนแปลงsudo service apache2 restart
João Pimentel Ferreira
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.