web-dev-qa-db-fra.com

Restreindre mod_pagespeed à des domaines spécifiques sur un serveur

Si un serveur héberge les domaines suivants: -

http://exampleA.com
http://exampleB.com
http://exampleC.com

Comment est-il possible d'activer mod_pagespeed uniquement pour les domaines http://exampleA.com et http://exampleC.com mais pas http://exampleB.com ?

J'ai lu sur le documentation pour les domaines mais je ne suis pas sûr de pouvoir comprendre si cela est possible ...

J'ai essayé d'insérer les éléments suivants dans pagespeed.conf et de redémarrer Apache, mais mod_pagespeed s'applique toujours à tous les domaines ...

ModPagespeedDomain http://exampleA.com
ModPagespeedDomain http://exampleC.com
4
zigojacko

Après avoir fouillé un peu et joué avec cela, j'ai réussi à le comprendre et j'ai maintenant un scénario de travail pour mod_pagespeed qui ne fonctionne que sur des domaines spécifiques (vhosts) sur le même serveur.

Ma configuration est basée sur une version Apache 2 de CentOs 6 qui exécute Parallels Plesk Panel.

Créez un fichier de configuration page par page distinct et stockez-le dans un emplacement qui ne sera pas a) automatiquement écrasé ou b) chargé automatiquement (c'est-à-dire dans les répertoires conf ou conf.d existants). Dans mon cas, j'ai créé /etc/httpd/myconf et nommé le fichier vhosts-pagespeed.conf.

Ce fichier de configuration contiendra la configuration mod_pagespeed que vous souhaitez que des domaines spécifiques utilisent (vous pouvez en créer autant que vous le souhaitez). Par exemple, le mien est comme: -

#https://developers.google.com/speed/pagespeed/module/configuration#virtual-hosts

<IfModule pagespeed_module>
ModPagespeed on
AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html
ModPagespeedFileCachePath            "/var/cache/mod_pagespeed/"
ModPagespeedFileCacheInodeLimit        500000
ModPagespeedAvoidRenamingIntrospectiveJavascript on
ModPagespeedLibrary 105527 ltVVzzYxo0 //ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js
ModPagespeedLibrary 92501 J8KF47pYOq //ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js
ModPagespeedLibrary 141547 GKjMUuF4PK //ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js
ModPagespeedLibrary 43 1o978_K0_L http://www.modpagespeed.com/rewrite_javascript.js

ModPagespeedEnableFilters extend_cache
ModPagespeedEnableFilters rewrite_javascript
ModPagespeedEnableFilters rewrite_css
ModPagespeedEnableFilters combine_javascript
ModPagespeedEnableFilters combine_css
ModPagespeedEnableFilters inline_javascript
ModPagespeedEnableFilters inline_css
ModPagespeedEnableFilters insert_img_dimensions
ModPagespeedEnableFilters move_css_to_head
ModPagespeedEnableFilters lazyload_images
ModPagespeedEnableFilters rewrite_images
ModPagespeedEnableFilters outline_css
ModPagespeedEnableFilters flatten_css_imports
ModPagespeedEnableFilters inline_import_to_link
ModPagespeedEnableFilters local_storage_cache
ModPagespeedEnableFilters collapse_whitespace
ModPagespeedEnableFilters elide_attributes
ModPagespeedEnableFilters remove_comments

ModPagespeedDisableFilters rewrite_javascript,combine_javascript

ModPagespeedModifyCachingHeaders off

ModPagespeedDomain *
<Location /mod_pagespeed_beacon>
      SetHandler mod_pagespeed_beacon
</Location>
<Location /mod_pagespeed_statistics>
    Order allow,deny
    Allow from localhost
    Allow from 127.0.0.1
    SetHandler mod_pagespeed_statistics
</Location>
<Location /mod_pagespeed_console>
    Order allow,deny
    Allow from localhost
    Allow from 127.0.0.1
    SetHandler mod_pagespeed_console
</Location>
<Location /mod_pagespeed_message>
    Allow from localhost
    Allow from 127.0.0.1
    SetHandler mod_pagespeed_message
</Location>
<Location /mod_pagespeed_referer_statistics>
    Allow from localhost
    Allow from 127.0.0.1
    SetHandler mod_pagespeed_referer_statistics
</Location>
</IfModule>

Vous devrez ensuite désactiver le mod_pagespeed global et inclure uniquement la configuration de la vitesse de transmission spécifique à l'hôte vhost sur les domaines pour lesquels vous souhaitez activer le mod_pagespeed.

Accédez à /var/www/vhosts/domain.com/conf et créez le fichier vhost.conf avec l'include (c'est tout ce que ce fichier doit contenir): -

Include /etc/httpd/myconf/vhosts-pagespeed.conf

Désactivez le code global /etc/httpd/conf.d/pagespeed.conf en le modifiant comme suit: -

ModPagespeed off

Puis redémarrez le serveur: -

service httpd restart

Maintenant, vérifiez que mod_pagespeed est activé sur le domain.com et que vous avez étendu vhost pour inclure la config personnalisée pagespeed.

Si cela ne fonctionne pas, vous devrez peut-être reconfigurer le vhost pour domain.com avec quelque chose comme:

 /usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=domain.com
4
zigojacko

Si vous pouvez utiliser des fichiers .htaccess, vous pouvez simplement définir ModPagespeed off dans le httpd.conf, puis le faire à la racine .htaccess pour tout domaine sur lequel vous souhaitez l'activer:

<IfModule pagespeed_module>

    ModPagespeed on

</IfModule>

Si vous utilisez Apache 2.4+, vous pouvez même utiliser la directive <If> pour les cas où le même fichier .htaccess est utilisé pour plusieurs domaines, ou par exemple si vous avez le .htaccess dans un fichier Git. référentiel et vous utilisez le même pour les sites de production et de développement mais vous voulez ModPagespeed on uniquement pour le site de production:

<IfModule pagespeed_module>

    <If "req('Host') == 'www.example.com'">
        ModPagespeed on
    </If>
    <Else>
        ModPagespeed off
    </Else>

</IfModule>
3
Chris Wheeler