Declaring multiple ports for the same VirtualHosts

Posted on

Declaring multiple ports for the same VirtualHosts – Problems with loading a website are often blamed on the Internet connection, but even the most perfectly set up network cannot help if there is no service to reply at your destination. One of the most popular HTTP servers used for this task is Apache2. Much of Apache’s popularity can be attributed to its easy installation and use, but never the less it is possible to run into problems with even the easiest of the software. If you’ve encountered an issue loading your web page, follow these simple troubleshooting methods outlined in this guide to attempt to get your web server back up and working again. Below are some tips in manage your apache2 server when you find problem about apache-2.2, configuration, virtualhost, port, .

Declare multiple ports for the same 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>

How can I declare a new port (‘listen’, ServerName, …) for ‘domain.localhost’?

If I add the following code, apache works (too much) also for all other subdomain of ‘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>

The question is somewhat ambiguous, but I’ll try to help.

If you want the same virtualhost to listen on multiple ports, then you do this:

Listen 80
NameVirtualHost *:80

Listen 8080    
NameVirtualHost *:8080

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

Generally speaking you don’t define multiple name-based VirtualHosts of the same domain name, unless you need to use a different protocol.

For SSL name-based virtualhosts you have to be extra careful: by definition there can not be multiple certificates on the same IP:Port, so, to avoid certificate errors it would have to be a wilcard certificate, covering all served domain names.

Leave a Reply

Your email address will not be published.