サーバーが次のドメインをホストしている場合:-
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
少し掘り下げてこれをいじった後、私はそれを理解することができ、同じサーバー上の特定のドメイン(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_pagespeed
でdomain.com
が有効になっていることを確認します。
それがうまくいかない場合、次のようなものでdomain.com
のvhostを再設定する必要があるかもしれません:
/usr/local/psa/admin/sbin/websrvmng --reconfigure-vhost --vhost-name=domain.com
.htaccessファイルを使用できる場合は、ModPagespeed off
でhttpd.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>