简体   繁体   中英

How to set up varnish 4.1.2 with multiple apache virtual hosts?

I'm trying to set up Varnish and Apache to serve multiple websites from one VPS. However, when I enter seconddomain.nl in a browser, I am redirected to the default apache2 start page (with a url that is the VPS IP address). However, firstdomain.nl works just fine. My setup is this:

etc/default/varnish :

DAEMON_OPTS="-a :80 \
             -T localhost:1234 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,256m"

(some parts omitted)

/etc/varnish/default.vcl :

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

/etc/apache2/ports.conf :

NameVirtualHost *:8080
Listen 127.0.0.1:8080

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

/etc/apache2/sites-available/000-default.conf :

<VirtualHost *:8080>
        ServerName 188.166.71.35

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

         <Directory /var/www/jws/>
            AllowOverride All
         </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

/etc/apache2/sites-available/seconddomain.nl.conf :

<VirtualHost *:8080>

        ServerAdmin janwillem@seconddomain.nl
        ServerName seconddomain.nl
        ServerAlias www.seconddomain.nl
        DocumentRoot /var/www/jws

        php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -fjanwillem@seconddomain.nl
        ErrorLog ${APACHE_LOG_DIR}/error-seconddomain.log
        CustomLog ${APACHE_LOG_DIR}/access-seconddomain.log combined
</VirtualHost>

/etc/apache2/sites-available/firstdomain.nl.conf :

<VirtualHost *:8080>

        ServerAdmin info@firstdomain.nl
        ServerName firstdomain.nl
        ServerAlias www.firstdomain.nl
        DocumentRoot /var/www/firstdomain.nl

        php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -finfo@cool-hou$
        ErrorLog ${APACHE_LOG_DIR}/error-firstdomain.log
        CustomLog ${APACHE_LOG_DIR}/access-firstdomain.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =firstdomain.nl [OR]
RewriteCond %{SERVER_NAME} =www.firstdomain.nl
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>

I had the same configuration as yours, and what solved it was to remove the 127.0.0.1 in /etc/apache2/ports.conf

This is how I have now and it works (I commented the changed line):

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

#Listen 127.0.0.1:8080
Listen 8080

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM