ฉันจะสร้างโฮสต์เสมือนที่ทำงานกับทั้ง http และ https ได้อย่างไร


8

นี่คือวิธีที่ฉันได้ตั้งค่าโฮสต์เสมือน:

<VirtualHost mysite> 
  <Directory "/Users/myusername/sitefolder"> 
    Options +FollowSymlinks
    AllowOverride All 
    Order Allow,Deny
    Allow from all
  </Directory> 
  DocumentRoot "/Users/myusername/sitefolder"
  ServerName mysite
  SSLEngine on
  SSLCertificateFile /Users/myusername/certs/server.crt
  SSLCertificateKeyFile /Users/myusername/certs/server.key
</VirtualHost>

ด้วยการกำหนดค่านี้ฉันสามารถดูเว็บไซต์ของฉันด้วย https เท่านั้น แต่ไม่ใช่ http เมื่อฉันปิด SSLEngine ฉันไม่สามารถดูเว็บไซต์ของฉันด้วย https ได้ แต่ http ทำงานได้ดี

ฉันจะปรับบรรทัดด้านบนเพื่อให้ฉันสามารถดูเว็บไซต์ของฉันโดยใช้ทั้ง http และ https ได้อย่างไร

ฉันใช้ OSX Lion แต่ฉันไม่คิดว่ามันจะสำคัญขนาดนั้น

ขอบคุณ

คำตอบ:


7

คุณต้องสร้างโฮสต์เสมือนสองโฮสต์ดังนี้:

<VirtualHost mysite:80> 
  <Directory "/Users/myusername/sitefolder"> 
    Options +FollowSymlinks
    AllowOverride All 
    Order Allow,Deny
    Allow from all
  </Directory> 
  DocumentRoot "/Users/myusername/sitefolder"
  ServerName mysite
</VirtualHost>


<VirtualHost mysite:443> 
  <Directory "/Users/myusername/sitefolder"> 
    Options +FollowSymlinks
    AllowOverride All 
    Order Allow,Deny
    Allow from all
  </Directory> 
  DocumentRoot "/Users/myusername/sitefolder"
  ServerName mysite
  SSLEngine on
  SSLCertificateFile /Users/myusername/certs/server.crt
  SSLCertificateKeyFile /Users/myusername/certs/server.key
</VirtualHost>

แรกคือHTTPโฮสต์ปกติในขณะที่สองจัดการHTTPSจราจรของคุณ


มีวิธีใดที่จะย้ายรหัสทั่วไปไปยังไฟล์อื่นและ # รวมถึงเพื่อให้การบำรุงรักษาง่ายขึ้น?
Ponkadoodle

2

นอกจากนี้คุณยังอาจต้องการที่จะใช้Includeคำสั่งเพื่อให้คุณไม่ได้มีการกำหนดค่าที่จะซ้ำกันระหว่างสอง vhosts คุณ - http://httpd.apache.org/docs/2.2/mod/core.html#include

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