एक ही VirtualHosts के लिए कई बंदरगाहों की घोषणा


35

समान VirtualHosts के लिए कई पोर्ट घोषित करें:

SSLStrictSNIVHostCheck off
# Apache setup which will listen for and accept SSL connections on port 443.
Listen 443
# Listen for virtual host requests on all IP addresses
NameVirtualHost *:443

<VirtualHost *:443>
  ServerName domain.localhost
  DocumentRoot "/Users/<my_user_name>/Sites/domain/public"
  <Directory "/Users/<my_user_name>/Sites/domain/public">
    Order allow,deny
    Allow from all
  </Directory>

  # SSL Configuration
  SSLEngine on
  ...
</VirtualHost>

मैं 'domain.localhost' के लिए एक नया पोर्ट ('सुनो', सर्वरनेम, ...) कैसे घोषित कर सकता हूं?

यदि मैं निम्नलिखित कोड जोड़ता हूं, तो Apache वर्क्स (बहुत अधिक) 'domain.localhost' के अन्य सभी उपडोमेन (subdomain1.domain.localhost, subdomain2.domain.localhost, ...) के लिए भी होता है।

<VirtualHost *:80>
  ServerName pjtmain.localhost:80
  DocumentRoot "/Users/Toto85/Sites/pjtmain/public"
  RackEnv development
  <Directory "/Users/Toto85/Sites/pjtmain/public">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

3
बस ध्यान देना है। आप एक में https और गैर- https वर्चुअल होस्ट को शामिल नहीं कर सकते। <VirtualHost *: 80 *: 443>। 80 में "SSLEngine" नहीं हो सकता। आपके पास SSL और गैर- SSL के लिए 2 sepearate VirtualHost घोषणाएँ होनी चाहिए।
गेसक

जवाबों:


63

सवाल कुछ अस्पष्ट है, लेकिन मैं मदद करने की कोशिश करूंगा।

यदि आप एक ही वर्चुअलहोस्ट को कई पोर्ट पर सुनना चाहते हैं, तो आप ऐसा करते हैं:

Listen 80
NameVirtualHost *:80

Listen 8080    
NameVirtualHost *:8080

<VirtualHost *:80 *:8080>
  ServerName some.domain.name
  ServerAlias some.other.domain.name
  ....
</VirtualHost>

सामान्यतया आप एक ही डोमेन नाम के कई नाम-आधारित VirtualHosts को परिभाषित नहीं करते हैं, जब तक कि आपको एक अलग प्रोटोकॉल का उपयोग करने की आवश्यकता न हो।

SSL नाम-आधारित वर्चुअलहोस्टेस के लिए आपको अतिरिक्त सावधान रहना होगा: परिभाषा के अनुसार एक ही आईपी पर कई प्रमाणपत्र नहीं हो सकते हैं: पोर्ट, इसलिए, प्रमाण पत्र त्रुटियों से बचने के लिए इसे wilcard सर्टिफिकेट होना चाहिए, जिसमें सभी डोमेन नाम शामिल हैं।


2
+1 लेकिन कुछ छोटे सुधार: SSL प्रमाणपत्र कर रहे हैं नहीं आईपी adresses के लिए लेकिन सामान्य नाम (सीएन) जो के बराबर होना चाहिए से बंधा होस्ट नाम । इसके अलावा एसएनआई विस्तार के साथ एक ही आईपी पते पर विभिन्न प्रमाणपत्रों के साथ कई वर्चुअल होस्ट करना संभव है। ( en.wikipedia.org/wiki/Server_Name_Indication )
डैनियल रिकोव्स्की

3
+1 भी, SSL के लिए यह होना चाहिए <VirtualHost *: 80 *: 443>
fedmich
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.