web-dev-qa-db-ja.com

mod_pagespeedをサーバー上の特定のドメインに制限する

サーバーが次のドメインをホストしている場合:-

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

ドメインmod_pagespeedおよびhttp://exampleA.comのみに対してhttp://exampleC.comを有効にするにはどうすればよいですか?ではありませんhttp://exampleB.com

私は ドメインのドキュメント を読んでいますが、これが達成できるかどうかを推測できるかどうかはわかりません...

次をpagespeed.confに挿入してApacheを再起動しようとしましたが、mod_pagespeedはすべてのドメインにまだ適用されています...

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

少し掘り下げてこれをいじった後、私はそれを理解することができ、同じサーバー上の特定のドメイン(vhost)でのみ動作するmod_pagespeedの動作シナリオができました。

私の構成は、Parallels Plesk Panelを実行するCentOs 6ビルドApache 2に基づいています。

別のpagespeed confファイルを作成し、a)自動上書きまたはb)自動ロードされない(つまり、既存のconfまたはconf.dディレクトリにない場所に保存します。私のインスタンスでは、/etc/httpd/myconfを作成し、ファイルにvhosts-pagespeed.confという名前を付けました。

この構成ファイルには、特定のドメインで使用するmod_pagespeed構成が含まれます(これらを好きなだけ作成できます)。たとえば、私のようなものです:

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

その後、グローバルmod_pagespeedを無効にし、mod_pagespeedを有効にするドメインにvhost固有のページ速度設定のみを含める必要があります。

/var/www/vhosts/domain.com/confに移動して、ファイルvhost.confをインクルードで作成します(このファイルに含まれる必要があるのはこれだけです):

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

次のように変更して、グローバル/etc/httpd/conf.d/pagespeed.confを無効にします。

ModPagespeed off

次に、サーバーを再起動します-

service httpd restart

次に、vhostを拡張してカスタムpagespeed confを含めるmod_pagespeeddomain.comが有効になっていることを確認します。

それがうまくいかない場合、次のようなものでdomain.comのvhostを再設定する必要があるかもしれません:

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

.htaccessファイルを使用できる場合は、ModPagespeed offhttpd.confを設定し、それを有効にするドメインのルート.htaccessでこれを行うことができます。

<IfModule pagespeed_module>

    ModPagespeed on

</IfModule>

Apache 2.4+を使用している場合、同じ<If>ファイルが複数のドメインに使用されている場合、またはGitに.htaccessがある場合などに、.htaccessディレクティブを使用することもできます。リポジトリで、本番サイトと開発サイトに同じものを使用しますが、本番サイトにのみModPagespeed onが必要です:

<IfModule pagespeed_module>

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

</IfModule>
3
Chris Wheeler