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

推薦する

HTML テーブル マークアップ チュートリアル (40): ヘッダーの暗い境界線の色属性 BORDERCOLORDARK

テーブルヘッダーでは、暗い境界線の色を個別に定義できます。基本的な構文<TH 境界線の色を暗く...

CSS のインライン スタイルに変換するソリューション (css-inline)

シーンについて話すメールを送信サードパーティのウェブサイトにHTMLを埋め込む他の編集者の記事をコピ...

Weibo の一括フォロー解除機能を実装する JavaScript コード

Weibo ユーザーのフォローを一括で解除するクールな JavaScript コードWeibo には...

MySQLはinit-connectを使用してアクセス監査機能の実装を増やします

まず init-connect を通じて mysql 接続を初期化し、次にインスタンスに接続する必要...

Dockerはbusyboxを使用してベースイメージを作成します

Docker イメージの最初の行は FROM alpine などのイメージで始まりますが、最初のベー...

Linux の操作とメンテナンスの基本 httpd 静的 Web ページ チュートリアル

目次1. ウェアハウスを使用してhttpd lrzsz解凍ファイルを作成する2. ソースコードファイ...

JS でオブジェクトを作成する 4 つの方法

目次1. リテラル値でオブジェクトを作成する2. 新しいキャラクターを使ってオブジェクトを作成する3...

MySQL 8.0 の新機能 - チェック制約の紹介

目次序文チェック制約作成、削除、表示制限要約する序文MySQL 8.0 では、チェック制約という非常...

Webデザイナーの成長体験

<br />まず最初に、私はこのグループの中では完全な新人だということを述べなければなり...

実践で遭遇するフロントエンドの基本(HTML、CSS)

1. div css マウスの手の形は cursor:pointer; です。 2. HTML の相...

docker compose を使ってワンクリックで分散構成センター Apollo を展開するプロセスの詳細な説明

導入分散について話すときは、分散構成センター、分散ログ、分散リンク トラッキングなどについて考える必...

Linux ファイル記述子、ファイルポインタ、および inode の詳細

目次Linux - ファイル記述子、ファイルポインタ、インデックスノード1. Linux - ファイ...

MySQL クエリにおける LIMIT の大きなオフセットによって引き起こされるパフォーマンス低下の分析

序文MySQLクエリはselectコマンドを使用し、limitとoffsetパラメータを使用して、指...

MySQL の null 可能フィールドは NULL に設定する必要がありますか、それとも NOT NULL に設定する必要がありますか?

MySQL を頻繁に使用する人は、次のような状況に遭遇する可能性があります。 1. フィールド タ...

CSS でテキストシャドウと要素シャドウ効果を使用する

テキストシャドウの紹介CSSでは、 text-shadowプロパティを使用してテキストの影を設定しま...