▼テンプレート
[EC-CUBE] 3.0.17
[レンタルサーバ] AWS
[OS] Amazon Linux
[PHP] 7.0.33
[データベース] MySQL 5.6.43
[WEBサーバ] Apache/2.4.39
[導入プラグインの有無]
◆CategoryContent
◆お問い合わせ管理
◆¥ → 円 表記切り替えプラグイン
◆商品オプションプラグイン
◆おすすめ商品管理プラグイン
◆関連商品プラグイン
◆クロネコヤマト カード・後払い一体型決済モジュール
[カスタマイズの有無]
◆html/index.php
// AWSのNLB経由だとリダイレクトループになるので、強制的にSSL設定
$_SERVER['HTTPS'] = 'on';
◆src/Eccube/Application.php
// 管理画面のIP制限チェック.
if ($app->isAdminRequest()) {
// IP制限チェック $allowHost = $app['config']['admin_allow_host'];
if (is_array($allowHost) && count($allowHost) > 0) {
//AWS ELB経由だとIPが全てELBになってしまうため、リアルのIPアドレスを取得して判定
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
$remoteip = $_SERVER["REMOTE_ADDR"];
if (count($allowHost) > 0) {
if (array_search($realip, $allowHost) === false && array_search($remoteip, $allowHost) === false) {
throw new \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException();
} }
/* if (array_search($app['request']->getClientIp(), $allowHost) === false) {
throw new \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException();
} */
}
}
◆app/config/eccube/doctrine_cache.yml
doctrine_cache:
metadata_cache:
driver: array
path:
host:
port:
password:
query_cache:
driver: array
path:
host:
port:
password:
result_cache:
driver: array
path:
host:
port:
password:
lifetime: 3600
clear_cache: true
hydration_cache:
driver: array
path:
host:
port:
password:
◆app/config/eccube/http_cache.yml
http_cache:
enabled: true
age: 10
# フロントでキャッシュを適用させる画面のrouteを設定
route:
- product_list
- product_detail
- homepage
- block_category
◆その他データベース設定として/etc/my.cnfに追記
query_cache_size=16M
query_cache_size=512M
query_cache_type=1
join_buffer_size=256K
tmp_table_size=32M
max_heap_table_size=32M
innodb_log_file_size=32M
innodb_buffer_pool_size=1000M
◆その他php設定としてphp.iniに追記
[現象]
お世話になります。
「ログイン情報をお忘れですか?」のパスワード再設定で、認証URLメール、新規パスワードメールは届くのですが、肝心のパスワードが変更されていない状態です。最初はプラグインの問題かと思い、全てのプラグインを停止しても変わりなく、apacheのエラーログにも特に出力はありませんでした。
そもそもサイト自体の表示が異常に遅い場合があり、EC-CUBEのキャッシュ対策でChromeなどは遅く感じませんがIE11やEdgeなどは表示するのに1分以上かかる場合が多いです。Androidもたまに。
htmlにダミーのphpファイル(ec-cube外)を作成しましたが、特に問題ないようでした。
AWSでインスタンスを複製したものをテストサーバーとして、テストサーバーに直接IPアドレスからHTTP接続(SSLではなく)すると、サクサク動きます。
なので常時SSL対策としてindex.phpに書き込んだコードが悪いのかと想像します。しかし打開策がなく、困り果てています。。
パスワードの件も、おそらくサイト延滞が引き起こしているものかと、疑念を持ちましたが、テストサーバーでも同様の結果でした。
かなり、テンパっています。。
何かアドバイス頂ければ、とてもありがたいです!
よろしくお願い致します!
結果報告 ーーーーーーーーーーーーーーーーーーーーーーーー
結局、NLBでの速度低下の原因はわからず、最終的にはロードバランサーを削除してEC2内部でSSL処理をすることで解決しました。
今回は小規模でこのような対策は可能でしたが、大規模になるとロードバランサーの使用は不可避なので、原因を探れればいいとは思います。
ありがとうございました。