ソフトウェアには複数の階層があり、どの階層が問題なのかわからないので、ここで聞くことを願っています。
私のbrowsersyncプロキシは私のサイトのいくつかのキャッシュされたバージョンを返します。、私のワークフローは次のとおりです。
Windows 10の上にFedora 25のVMWareインスタンスを実行します。これからは、これが私の「基本」OSです。
2番目のVMWareインスタンスとして、Fedora LinuxでSSHFSを使用してインストールされたUbuntu 16.04.2 Serverを実行します。 root権限を持つユーザー(しかしroot自体ではない)を使用してSSHを介して接続しました。
私は/ var / www内のvirtualenv内でFlaskアプリケーションを実行しており、このフォルダに対してchown user:www-data -Rを実行しました。
私のNginxはUbuntuサーバーのポート80でアプリケーションを提供し、それをホスト名(website.com)で解決するので、私のFedoraワークステーションにはホスト「192.168.xx.xx website.com」があります。これは私のアプリケーションにアクセスできることを意味します。 website.comと入力すると、これからすべてが大丈夫です。
gulpとbrowsersync-gulpプラグインを入れると問題が発生します。
私のアプリケーションをプロキシするには、次の設定を使用します。
proxy: {
target: 'http://127.0.0.1',
proxyReq: [
function(proxyReq) {
proxyReq.setHeader('Host', 'website.com')
}
]
}
これはうまくいきます。 192.168.xx.xxで別のサーバーを開き、ファイルのいくつかの変更をコミットすると、それ自体が更新されます(変更があるとbrowsersyncを再ロードする監視タスクを指定したため)。
私が直面した問題は、browsersyncプロキシまたはwww.website.comを介してWebサイトを更新するたびに、異なるバージョンのWebサイトが表示されます。(最近変更したものを見ることができます。) - 私のサイトの3つの異なるバージョンをキャッシュに保存し、そのうちの1つを完全にランダムに提供するようです。
そうかもしれないと思います。3つのバージョンの数は3人のワーカーを反映しています。systemdでgunicornを設定しましたが、次のようになります。
"ExecStart=/home/user/.local/bin/gunicorn --workers 3 --bind unix:website.com.sock -m 777 wsgi:app"
(権限は007でなければならないことがわかっています。)
私のNginxサイトの設定は次のとおりです。
location / {
include proxy_params;
proxy_pass http://unix:/var/www/website.com/website.com.sock;
}
したがって、チェーンは次のようになります。
Fedora 25 -> SSH -> Ubuntu 16.04.2 -> Gulp -> Gulp-browsersync -> Nginx -> VirtualEnv -> Gunicorn -> Flaskアプリケーション
似たようなもの
サイトのランダムバージョンを更新するたびに、何らかの理由で長すぎます。
この問題を解決する方法を教えてください。私のワークフローの他のヒントも教えてくれてありがとう。
答え1
結局のところ、これは実際には「キャッシュ」の問題ではありません。フロントエンドファイルが変更されるたびにGunicornインスタンスを再起動する必要があります。今はこれを閉じてください。
systemdを使用してアプリケーションを提供する場合は、変更するたびに再起動する必要があります。それ以外の場合は、以前のバージョンのサイトを提供します。