• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 670
  • Last Modified:

Linux RH 9 with QMail, Imap, Imaps and Squirrelmail and multiple Virtual domains.

Hello I have a linuxbox set up with RH 9 and the Qmail install from qmailrocks.org. Qmail is running great with 3 virtual domains running on it I need to host multiple virtual webmail domains also. I have a virtual host set up in the apache conf file called domain1.com pointing to /var/www/html/webmail. Webmail is the squirrelmail directory renamed. when I go to https://mail.domain1.com/webmail, bam it opens squirrelmail and life is good, but when I add another virtual host to my apache conf file and restart apache I get:

 Stopping httpd:                                            [  OK  ]
Starting httpd: [Sat Apr 03 19:48:13 2004] [warn] VirtualHost 1.2.3.4:80 overlaps with VirtualHost 1.2.3.4:80, the first has precedence, perhaps you need a NameVirtualHost directive

What can I do about this?

I can't get to my second virtual domain eg https://mail.domain2.com/webmail. It cant find server

Here is what my apache conf file looks like


<VirtualHost 1.2.3.4:80>
ServerName domain1.com.
ServerAlias mail.*
ServerAdmin jeff@domain1.com
DocumentRoot /var/www/html/webmail
</VirtualHost>

<VirtualHost 1.2.3.4:80>
Servername domain2.com
ServerAlias mail.*
ServerAdmin admin@domain2.com
DocumentRoot /var/www/html/webmail
</VirtualHost>
0
bstearns
Asked:
bstearns
  • 2
  • 2
1 Solution
 
Alf666Commented:
You need to do something like :

NameVirtualHost *

<VirtualHost *>
ServerName domain1.com.
ServerAlias mail.domaine1.com.
ServerAdmin jeff@domain1.com
DocumentRoot /var/www/html/webmail
</VirtualHost>

<VirtualHost *>
Servername domain2.com
ServerAlias mail.domain2.com
ServerAdmin admin@domain2.com
DocumentRoot /var/www/html/webmail
</VirtualHost>


But, be careful. This works only for http. HTTPS can not do this.

You can not have 2 https servers on only one IP addr. The reason for this is that name based virtual hosting is inherent to the HTTP protocol. In fact, the header passed is moething like :

GET / HTTP1.0
host: www.domain.com

This is what instructs the server to give back the pages for one host or the other.

But in HTTPS, before the HTTP protocol kicks in, the server's certificate is sent. And it contains the name of the host. So browsers won't accept connections for host names not corresponding to the certicate's.

If you want to have multiple servers, you'll have to do something like :

http://myserver.domain.com/server1

And alias that properly.

0
 
bstearnsAuthor Commented:
Thank you for the knowledge.
So what your saying is either set up ip based virtual hosting or set it up like your example: http://myserver.domain.com/server1. Can you give me some pointers for setting it up like your example please. What would be the first step?
0
 
Alf666Commented:
Not exactly. If you want to do HTTP, then, name based virtual hosting is perfect.
If you want HTTPS on more than one server, then, you'll need IP based virtual hosting or, you can only serve one server name (and have whatever you want under it).

So, if you do not *absolutely* need https, then, I suggest you stick to the config I gave you.
If you want more, just be precise about what, and I'll try and explain.



0
 
bstearnsAuthor Commented:
I think I have it figured out. I can go to my main domain name eg: https://mail.domain1.com/webmail and put my mail.domain2.com user name and password in and get the mail from that account. Not sure why, I'm going to figure it out though. Thank you for your persistant help.
Jeff
0

Featured Post

Upgrade your Question Security!

Add Premium security features to your question to ensure its privacy or anonymity. Learn more about your ability to control Question Security today.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now