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) > > >