Nginx Gunicorn Flaskアプリは私のウェブサイトのランダム(キャッシュされた)バージョンを返します。

Nginx Gunicorn Flaskアプリは私のウェブサイトのランダム(キャッシュされた)バージョンを返します。

ソフトウェアには複数の階層があり、どの階層が問題なのかわからないので、ここで聞くことを願っています。

私の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を使用してアプリケーションを提供する場合は、変更するたびに再起動する必要があります。それ以外の場合は、以前のバージョンのサイトを提供します。

関連情報