Alexander Farber
2016-Jun-24 19:58 UTC
[CentOS] haproxy + Apache + virtual hosts -> wrong host is displayed
Hello,
I hope my question is not off-topic here.
On CentOS 7.2.1511 I have installed:
haproxy-1.5.14-3.el7.x86_64
httpd-2.4.6-40.el7.centos.1.x86_64
The /etc/haproxy/haproxy.cfg binds HAProxy to
ports 80 and 443 and accepts HTTPS to slova.de:
defaults
mode http
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
....
frontend public
bind 144.76.184.151:80
bind 144.76.184.151:443 ssl crt /etc/pki/tls/certs/slova.de.pem
reqidel ^X-Forwarded-Proto:
reqidel ^X-Forwarded-For:
reqadd X-Forwarded-Proto:\ https if { ssl_fc }
option forwardfor
default_backend apache
backend apache
server domain 127.0.0.1:8080
The /etc/httpd/conf/httpd.conf binds Apache
to port 8080 and serves several Wordpress sites:
Listen 127.0.0.1:8080
ServerName 144.76.184.151
<VirtualHost 127.0.0.1:8080>
DocumentRoot /var/www/html/afarber.de
ServerName afarber.de
ErrorLog logs/afarber.de/error_log
CustomLog logs/afarber.de/access_log common
</VirtualHost>
<VirtualHost 127.0.0.1:8080>
DocumentRoot /var/www/html/ruhrgebietsingle.de
ServerName ruhrgebietsingle.de
ErrorLog logs/ruhrgebietsingle.de/error_log
CustomLog logs/ruhrgebietsingle.de/access_log common
</VirtualHost>
<VirtualHost 127.0.0.1:8080>
DocumentRoot /var/www/html/bukvy.de
ServerName bukvy.de
ErrorLog logs/bukvy.de/error_log
CustomLog logs/bukvy.de/access_log common
</VirtualHost>
<VirtualHost 127.0.0.1:8080>
DocumentRoot /var/www/html/slova.de
ServerName slova.de
ErrorLog logs/slova.de/error_log
CustomLog logs/slova.de/access_log common
</VirtualHost>
When I open http://slova.de or https://www.slova.de
they work fine. But when I try to open same URLs
with "www." prepended, the browser displays
http://ruhrgebietsingle.de (the 2nd site out of 4)
Why does it happen? I just can not figure it out.
What tool would help here to debug?
Thank you
Alex
Alexander Farber
2016-Jun-24 21:35 UTC
[CentOS] haproxy + Apache + virtual hosts -> wrong host is displayed
Ok, I had to add ServerAlias for each server, didn't think of it because before I had a mod_rewrite rule to remove the "www." prefix... On Fri, Jun 24, 2016 at 9:58 PM, Alexander Farber < alexander.farber at gmail.com> wrote:> > On CentOS 7.2.1511 I have installed: > haproxy-1.5.14-3.el7.x86_64 > httpd-2.4.6-40.el7.centos.1.x86_64 > > The /etc/haproxy/haproxy.cfg binds HAProxy to > ports 80 and 443 and accepts HTTPS to slova.de: > > defaults > mode http > option http-server-close > option forwardfor except 127.0.0.0/8 > option redispatch > .... > frontend public > bind 144.76.184.151:80 > bind 144.76.184.151:443 ssl crt /etc/pki/tls/certs/slova.de.pem > reqidel ^X-Forwarded-Proto: > reqidel ^X-Forwarded-For: > reqadd X-Forwarded-Proto:\ https if { ssl_fc } > option forwardfor > default_backend apache > > backend apache > server domain 127.0.0.1:8080 > > The /etc/httpd/conf/httpd.conf binds Apache > to port 8080 and serves several Wordpress sites: > > Listen 127.0.0.1:8080 > ServerName 144.76.184.151 > > <VirtualHost 127.0.0.1:8080> > DocumentRoot /var/www/html/afarber.de > ServerName afarber.de > ErrorLog logs/afarber.de/error_log > CustomLog logs/afarber.de/access_log common > </VirtualHost> > > <VirtualHost 127.0.0.1:8080> > DocumentRoot /var/www/html/ruhrgebietsingle.de > ServerName ruhrgebietsingle.de > ErrorLog logs/ruhrgebietsingle.de/error_log > CustomLog logs/ruhrgebietsingle.de/access_log common > </VirtualHost> > > <VirtualHost 127.0.0.1:8080> > DocumentRoot /var/www/html/bukvy.de > ServerName bukvy.de > ErrorLog logs/bukvy.de/error_log > CustomLog logs/bukvy.de/access_log common > </VirtualHost> > > <VirtualHost 127.0.0.1:8080> > DocumentRoot /var/www/html/slova.de > ServerName slova.de > ErrorLog logs/slova.de/error_log > CustomLog logs/slova.de/access_log common > </VirtualHost> > > When I open http://slova.de or https://slova.de <https://www.slova.de> > they work fine. But when I try to open same URLs > with "www." prepended, the browser displays > http://afarber.de <http://ruhrgebietsingle.de> (the 1st site out of 4) > > >