【Xserver】Xアクセラレータとは何か?サブドメインに適用する方法|Ver1とVer2の違い|.user.iniの書き方

server-cloud-kv-prograshi(プロぐらし)-kv Server
記事内に広告が含まれていることがあります。

XserverにはWEBサイトを高速化する強力なツールに「Xアクセラレーター」があります。

XアクセラレーターはVer.1とVer.2があり、どちらを選べばいいかわからないという方もいると思います。

ここでは、Xアクセラレーターとは何か?やバージョン1、バージョン2の違い、サブドメインに適用する方法についてまとめています。


Xアクセラレーターとは何か?

Xserverの「Xアクセラレータ」はWebサイトを高速・安定化させるための機能です。次の2つの種類が用意されています。

具体的には、静的ファイルのキャッシュをサーバーに保持することで、サイトの高速化と同時アクセス数の拡張を行います。

生成したキャッシュは2分間保持されます。キャッシュ対象のファイルは以下の拡張子です。

キャッシュするファイル

.css .js .jpeg .jpg .gif .png .svg .svgz .wbmp .webp .ico .jng .bmp .3gpp .3gp .ts .mp4 .mpeg .mpg .mov .webm .flv .m4v .mng .asx .asf .wmv .avi .mid .midi .kar .mp3 .ogg .m4a .ra .woff .woff2 .ttf .otf .eot


Xアクセラレーターの注意点

Xアクセラレーターを使うときは以下の点に注意してください。

ユーザー毎に表示内容が異なるサイトでは効果が弱い

会員制サイトやショッピングサイトなどのように、訪問者ごとに表示内容が異なるようなページでは、当機能による高速化や負荷軽減の効果が出づらいことがあります。


キャッシュされたページが拡散される

.htaccessなどによるIP制限を行っている場合など、特定のユーザーや、特定の条件下でのみページを公開している場合、そのページがリバースプロキシ上にキャッシュされることで、意図しないユーザーがそれらのデータへアクセス可能となってしまう可能性があります。

リバースプロキシとは何か?

リバースプロキシは、インターネットとサーバーの間に置かれ、クライアント(Webブラウザなど)からのリクエストを中継するサーバーのことです。いわば、サーバーの代理人として働くことで、様々なメリットをもたらします。


サブドメインに適用する方法

Xアクセラレーターの設定画面には、登録してあるメインのドメイン一覧しか表示されていません。

というのも、メインのドメインにXアクセラレーターを適用した場合、サブドメインに対しても自動的にXアクセラレーターが適用されるためです。

注意点

メインのドメインで問題がなくても、サブドメインで問題が出た場合は、メインのドメインのXアクセラレーターをVer.1またはオフにする必要があります。


Xアクセラレーターの種類(バージョンの違い)

XアクセラレータにはVer.1とVer.2の二種類があります。

Xアクセラレーターの種類

Xアクセラレータ Ver.1 … 静的ファイルの高速化(キャッシュ)
Xアクセラレータ Ver.2 … 静的ファイルの高速化(キャッシュ)+PHPプログラムの高速化

Ver.2は進化系で、通常の静的ファイルのキャッシュに加えて、PHPプログラムの高速化も行います。

Ver.2にすることで、PHPプログラムの処理速度を最大20倍まで向上することができます。(※エックスサーバー内の同一構成サーバーに対する、Apache Benchコマンドのパフォーマンス比較によるもの)

なお、Ver.2が使用できるのはPHPのバージョンが「PHP 7.2.x 以上」です。


Ver.2のデメリット(使わない方がいい場合)

Ver.2の方が新しくて高速なので、Ver.2だけでいいのでは?と思うかもしれません。

ですが、Ver.2には次のようなデメリットがあります。

Ver.2のデメリット
  • php.iniの追加設定が無視される
  • 他のPHPプログラムと干渉する可能性がある


php.iniの一部設定が無視される

Ver.2でPHP高速化の処理をする際に、php.iniの一部設定値を固定するため、任意で変更することができなくなります。

既に対象のパラメータを任意で設定している場合はその設定が無視されることになります。

この場合は、.user.iniに追記する必要があります。(書き方は後述しています)


他のPHPプログラムと干渉する可能性がある

Ver.2を適用することで、高速化の処理が利用中の他のプログラムと干渉する可能性があります。この場合、意図しない挙動やエラーが発生することがあります。

Ver.2にしたことで問題が発生する場合は、Ver1にするか、オフにする必要があります。


Ver.2利用時のphp.iniの対応

Ver.2を利用している場合、対象ドメインのフォルダに「.user.ini」というファイルが生成され、このファイルがphp.iniの役割を担うようになります。

本来サーバー全体に適用されるphp.iniの設定を、ディレクトリ毎に個別にできるようにしたのが.user.iniファイルです。

ただし、以下のパラメータについては.user.iniでも設定することはできません。サーバーの初期値が適用されます。

Point

このリストに、PHPの設定変更でよく使う以下のような項目は含まれていないので、.user.iniで自由に設定することができます。

  • memory_limit
  • post_max_size
  • upload_max_filesize
  • max_input_vars
  • max_execution_time

これらのパラーメタの詳細については下記をご参考ください。

設定初期値
allow_url_fopenOn
allow_url_includeOff
apc.coredump_unmapOff
apc.enable_cliOff
apc.enabledOn
apc.gc_ttl3600
apc.mmap_file_maskno value
apc.shm_segments1
apc.shm_size64M
apc.slam_defenseOff
apc.ttl3600
apc.user_entries_hint4096
browscapno value
cgi.discard_path0
cgi.fix_pathinfo1
cgi.force_redirect1
cgi.redirect_status_envno value
disable_classesno value
disable_functionsno value
doc_rootno value
enable_dlOn
expose_phpOff
extension_dirno value
fastcgi.logging1
file_uploadsOn
hard_timeout2
imagick.progress_monitor0
imagick.skip_version_check0
ldap.max_linksUnlimited
mail.force_extra_parametersno value
max_file_uploads20
mbstring.func_overload0
mysqli.allow_local_infileOn
mysqli.allow_persistentOn
mysqli.max_linksUnlimited
mysqli.max_persistentUnlimited
mysqli.reconnectOff
mysqli.rollback_on_cached_plinkOn
opcache.blacklist_filenameno value
opcache.enable_cliOff
opcache.enable_file_overrideOff
opcache.enableOn
opcache.error_logno value
opcache.file_cache_consistency_checks1
opcache.file_cache_only0
opcache.file_cacheno value
opcache.force_restart_timeout180
opcache.huge_code_pagesOff
opcache.inherited_hackOn
opcache.interned_strings_buffer8
opcache.lockfile_path/tmp
opcache.log_verbosity_level1
opcache.max_accelerated_files10000
opcache.max_file_size0
opcache.max_wasted_percentage5
opcache.memory_consumption128
opcache.opt_debug_level0
opcache.optimization_level0x7FFFBFFF
opcache.preferred_memory_modelno value
opcache.protect_memory0
opcache.restrict_apino value
opcache.save_comments1
opcache.use_cwdOn
opcache.validate_permissionOff
opcache.validate_rootOff
pdo_mysql.default_socket/var/lib/mysql/mysql.sock
pgsql.allow_persistentOn
pgsql.auto_reset_persistentOff
pgsql.max_linksUnlimited
pgsql.max_persistentUnlimited
phar.cache_listno value
realpath_cache_size4096K
realpath_cache_ttl120
sendmail_path/usr/sbin/sendmail -t -i
sqlite3.extension_dirno value
sys_temp_dirno value
upload_tmp_dirno value
user_dirno value
user_ini.cache_ttl300
user_ini.filename.user.ini
xmlrpc_errorsOff
zend.signal_checkOff



.user.iniの書き方

Xserverの場合、「post_max_size」や、「memory_limit」「upload_max_filesize」は1GBとなっており、かなり余裕がある設定になっています。

もし、利用可能な変数の上限数を変更する「max_input_vars」を変更したい場合は、.user.iniに追記する必要があります。

ファイルマネージャーを開き「.user.ini」を選択し、上部の「編集」をクリックします。


「更新」ボタンをクリックすれば完了です。


任意のわかりやすい場所に以下を追記します。

max_input_vars = 2000


参考リンク

タイトルとURLをコピーしました