Flask と Vue のフロントエンドとバックエンドを分離したプロジェクト展開のサンプル コード

Flask と Vue のフロントエンドとバックエンドを分離したプロジェクト展開のサンプル コード

以前、プロジェクトを開発しました。バックエンドのインターフェースを書くために Flask フレームワークを使用し、フロントエンドには Vue フレームワークを使用しました。プロジェクトのフロントエンドとバックエンドは完全に分離されていました。デプロイ中にいくつか問題が発生したので、記録しました。

デプロイメント環境: centos6.5Python3.6.3flask0.12.0 vue

デプロイメント方法: uwsgi+nginx

ステップ:

​ 1. まず、通常の Python ランタイム環境をインストールします。 ​ 2. uswsgi をインストールして通常どおり実行します (インストールには pip を使用します。pip install uwsgi):

新しいconfig.iniファイルを作成する

[uwsgi]

# uwsgi の起動時に使用するアドレスとポート。Nginx プロキシはこのアドレスに転送する必要があります socket = xxxx:xxxx    
#Python 環境ディレクトリ #home = /usr/local/python/bin
#ウェブサイトのルートディレクトリを指定します chdir = /root/www
#python プロジェクトの起動プログラム ファイル wsgi-file = /root/www/run.py
#Pythonプログラムを起動するために使用するアプリケーション変数名 callable = app
#プロセッサ数 = 3
#スレッド数 threads = 3
#ステータス監視アドレス stats = 127.0.0.1:5000
#uwsgi パッケージ解析用の内部バッファ サイズを設定します。デフォルト 4k
バッファサイズ = 32768

uwsgi 起動コマンド:

uwsgi config.ini #このコマンドは直接uwsgiを起動します -d --ini config.ini #このコマンドはバックグラウンドで実行されます。一般的には

3. nginxをインストールします。正常です。私たちはインストールの保守と操作をしていますが、プロセスは表示されませんので、Baiduを参照してください。

ここで疑問が湧きます。

vueとflaskを同時にプロキシすると、どのように試してもフロントエンドはflaskのアドレスにアクセスできません

解決:

​ 2つの異なるドメイン名がそれぞれvueとflaskのプロキシに使用され、vueはflaskのプロキシドメイン名を指します。

ユーザー nginx;
ワーカープロセス 1;

error_log ログ/error.log;
#error_log ログ/error.log 通知;
#error_log ログ/error.log 情報;

pid ログ/nginx.pid;


イベント {
    ワーカー接続xx;
    epoll を使用します。
}


http {
    mime.types を含めます。
    デフォルトタイプ アプリケーション/オクテットストリーム;

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log ログ/access.log メイン;
    server_tokens オフ;
    ファイル送信オン;
    #tcp_nopush オン;

    #キープアライブタイムアウト 0;
    キープアライブタイムアウトxx;

    #gzip オン;
        サーバー{
                xxを聴く;
                サーバー名 hqfund.com www.hqfund.com;
                301 https://$host$request_uri を返します。
  }
 
 サーバー{
  443 ssl を聴く;
  サーバー名 xxx.com1;
         ssl_certificate /xxxx;
         ssl_certificate_key /xxxx;


  
  位置 / {
              ルート /xxxx;
   インデックス index.html index.htm;
  }
 }

    サーバー{
                xxを聴く;
                サーバー名 xxx.com2;
                301 https://$host$request_uri を返します。
  }
  
 サーバー{
  xxx ssl を聞きます。
  サーバー名 xxx.com2;
  ssl_certificate /xxxx;
         ssl_certificate_key /xxxx;
  
  位置 / {
              uwsgi_params を含めます。
   uwsgi_passxxxx:xx;
   プロキシ_http_バージョン 1.1;
   proxy_set_header アップグレード $http_upgrade;
   proxy_set_header 接続「アップグレード」;
  }
 }
}

これで、Flask と Vue のフロントエンドとバックエンドの分離プロジェクト展開のサンプルコードに関するこの記事は終了です。Flask と Vue のフロントエンドとバックエンドの分離の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • uWSGI と Nginx を使用して Flask プロジェクトをデプロイする方法の例
  • Flask フレームワーク構成依存パッケージ情報に基づく Python プロジェクトの移行と展開
  • CentOS に Flask プロジェクトをデプロイする方法
  • Flaskプロジェクトの展開の実装手順

<<:  ウェブページのFOUC問題によるウェブページの混乱の解決策

>>:  HTMLとCSSを使用して、自分だけの暖かい男「Dabai」を作成します

推薦する

Jmeterはデータベースプロセスダイアグラムに接続します

1. MySQL jdbc ドライバー (mysql-connector-java-5.1.28.j...

CSS スタイルの優先順位とカスケード順序に関する議論

一般的に: [重要なフラグ1つ] > [特別なフラグ4つ] > 宣言順!importan...

JS におけるメモリと変数の保存についての詳細な説明

目次序文JSマジックナンバー数値の保存バイナリ変換方法なぜ 0.1 + 0.2 !== 0.3 なの...

Docker で ElasticSearch をデプロイする方法

1. ElasticSearch とは何ですか? Elasticsearch も Java で開発さ...

HTML でテーブルを分割および結合する (colspan、rowspan)

このコードは水平マージを示しています。 <!DOCTYPE html PUBLIC "...

CenterOS7 インストールおよび構成環境 jdk1.8 チュートリアル

1. まずcenterosに付属のJDKをアンインストールします rpm-qa|grepopenjd...

初心者向けのMySQLデータベースとテーブルDDLの作成と操作の学習

目次1. データベースを操作する1.1 データベースを作成する1.2 データベースをクエリする1.3...

HTML で JavaScript の全選択/全選択解除操作を実行するサンプル コード

コードをコピーコードは次のとおりです。 <html> <ヘッド> <m...

Vue で echarts を使用してコンポーネントを視覚化する方法

echarts コンポーネントの公式ウェブサイト アドレス: https://echarts.apa...

inline-blockプロパティとの互換性

<br />1年前、インターネット上にはinline-blockプロパティに関する記事は...

MySQLはテーブルデータを復元するためにfrmファイルとibdファイルを使用します

目次frm ファイルと ibd ファイルの紹介frm ファイル回復テーブル構造ibd ファイル回復テ...

Java は Excel から MySQL にデータをインポートします

実際の業務では、Excel からデータベースにデータをインポートする必要がある場合があります。データ...

Vue 学習 - VueRouter ルーティングの基礎

目次1. Vueルーター1. 説明2. 選択したルートのレンダリング: 3. 基本的な動作原理2. ...

Linux で PHP を 5.6 にアップグレードする実用的な方法

1: ターミナルに入ったらPHPのバージョンを確認する php -v出力は次のようになります。 PH...

MySQLは外部SQLスクリプトファイルのコマンドを実行します

目次1. SQLコマンドを含むSQLスクリプトファイルを作成する2. SQLスクリプトファイルを実行...