2

私はWeb開発にまったく慣れていません。私はAmazonec2サーバーでホストされているWebサイトで作業しています。このサイトは、djangoフレームワークを使用したPythonです。memcachedを使用してクライアント情報をキャッシュしています。私のサイトとキャッシュはローカルマシンで機能しますが、EC2サーバーでは機能しません。memcachedサーバーを確認したところ、キーを設定できなかったことがわかりました。サーバー上でキーが適切に設定されるようにsettings.pyで変更する必要があるものや、不足している可能性のあるものはありますか。

編集:問題を見つけました。memcacheにキーを設定するための新しいミドルウェアを追加しました。それは呼ばれていません。ローカルマシンで完全に動作します。サーバーでは、アプリサーバーとしてgunicornを使用し、リバースプロキシとしてnginxを使用しています。これらのいずれかが問題を引き起こす可能性があります。また、nginxをリロードしようとしましたが、それも役に立ちませんでした。

4

3 に答える 3

2

それはばかげたグリッチでした。新しいミドルウェアを機能させるには、gunicornサーバーをリロードする必要があることがわかりました。助けてくれてありがとう。

于 2012-12-03T19:53:07.320 に答える
0

これをsettings.pyに追加する場合ですか?

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.cache.UpdateCacheMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.cache.FetchFromCacheMiddleware',
)

ドキュメントから。

あなたが「新しいミドルウェアを追加した」と言うとき、あなたが何を意味するのか私だけがはっきりしていません。

于 2012-12-01T15:29:59.470 に答える
0

まずCACHES、キャッシュサーバーにアクセスするために必要なすべてのクレデンシャルを考慮して、設定でキャッシュを設定する必要があります:https ://docs.djangoproject.com/en/dev/topics/cache/#memcached

また、使用しようとしているインスタンスからキャッシュサーバーにアクセスできることを確認してください。

新しいミドルウェアの使用に関しては(わずかに異なる問題)、次のようになります。

  • local_settings.py設定で適切に定義されていることを確認してください(たとえば、使用する環境によって異なるはずの一般的に使用されるファイルなど、他の設定によって上書きされないようにしてください)。
  • ミドルウェアクラスが適切に定義されていることを確認します(たとえばprocess_request()、着信要求に対して何かを実行する場合に定義します)。
  • たとえばを使用している場合。mod_wsgiをApacheで使用する場合は、サービス(この場合はApache)をリロードすることを忘れないでください。呼び出しsudo service apache2 reload(前述の場合のように)、
于 2012-12-01T17:03:29.093 に答える