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」を作成します

推薦する

Docker クロスサーバー通信オーバーレイソリューション (パート 1) Consul 単一インスタンス

目次シナリオタスクアイデア分析するコンセプトと選択ちょっとしたテスト環境説明予防実践テスト引用シナリ...

Mac でソースコードから MySQL 5.7.17 をコンパイルしてインストールするチュートリアル

1. ダウンロードして解凍します: /Users/xiechunping/Softwares/mys...

クールなバーコードエフェクトの作り方を教えます

声明:この記事では、Web ページ制作技術を使用して問題を包括的に解決するという考え方を反映して、W...

MySQL インデックスの種類 (通常、ユニーク、フルテキスト) の説明

MySQL のインデックスの種類には、通常のインデックス、一意のインデックス、全文インデックスがあり...

Linux での fuser コマンドの使用法の詳細な説明

説明する: fuser は、現在ディスク上のファイル、マウント ポイント、さらにはネットワーク ポー...

モバイルフロントエンド適応ソリューション(概要)

ネットで検索してみたところ、多くの面接でモバイル適応方法について質問されることが分かりました。最近い...

MySQLにおける静的変数の役割の詳細な説明

MySQLにおける静的変数の役割の詳細な説明静的変数の使用 静的変数サンプルコード: 関数テスト()...

Docker を使用して Nginx+Flask+Mongo アプリケーションをデプロイする

サーバーにはNginx、データベースサポートにはMongo、Python言語のWebフレームワークに...

ページのキャッシュを防ぐソリューション

解決: <head> に次のコードを追加します。コードをコピーコードは次のとおりです。 ...

Ubuntu環境でPHPとNginxをコンパイルしてインストールする方法

この記事では、Ubuntu 環境で PHP と Nginx をコンパイルしてインストールする方法につ...

HTML のテキストエリアの改行問題の概要

最近、Textrea に転送したときに、データが本当に行ごとに保存できるかどうかという問題に遭遇しま...

js を使用してシンプルなスイッチ ライト コードを実装する

体の部位: <button>ライトのオン/オフを切り替える</button>...

js 配列から重複を削除する 11 の方法

実際の業務や面接では、「配列の重複排除」の問題によく遭遇します。以下は、js を使用して実装された配...

Centos 6.9 に MySQL をインストールするための詳細なチュートリアル

1. MySQLがインストールされているかどうかを確認します。次のコードで確認できます。 [root...

HTML チュートリアル: 画像のサイズ、配置、間隔、境界線の属性を変更する方法

画像タグ: <img> ページに画像を挿入するには、「src」属性を持つ「img」タグを...