gunicorn + nginxの設定

gunicorn + nginxの設定については、も重要であり、最終的にどのような構成が正しいことを確認するために、それらの間の関係は非常に重要であることを理解し、

nginxの設定ファイル:

設定ファイルには便利な3つを持って変更します。

サーバ自体を想定すると、IPアドレスIP-Aと呼ばれ、gunicornはフラスコのIPはIP-Bで表される、127.0.0.1で始めたとき、私は書くのに使用されます

1.私は、ブラウザのHTTPに入力すると:// IP-A:// IP-B:ポート(nginxのポート)、nginxのは、HTTPにアドレスポイントを訪問するポート(ポートを開始gunicorn)

だから我々は、ページの内容が実際に甲斐フラスコルートページをgunicornされていることがわかり

そのビュー機能app.route(「/」)デコレータに装飾機能は、ページの内容を返します。

 

そして、この関係はnginx.conf設定ファイルにそれを設定する方法体を反映しますか?

メインはproxy_passを設定することです

パラメータ:

  • ポートをリスニング聞く必要があります
  • server_nameはドメイン名が、バインドされるIPを使用し、一時的にドメインなし
  • 場所/時間のルートへのアクセスは、転送127.0.0.1:8000へのすべての要求が、そう、中間の構成は、上記の最も基本的なニーズを満たすために、コンテンツを転送される始めgunicornジャンゴアプリケーションを本明細書に転送する場合、特別な要件については、自分自身のnginxの上の公式ドキュメントを参照してください。
  • 場所/静的/静的ファイル、処理による静的ファイルのnginxのは、ダイナミックではなく、すべてが参照サイトを見つけることができませんCSS設定JS場合、Djangoに転送パスを設定

ここでバックアップを作成するには、完全な設定ファイル:

1  コンフィギュレーションの詳細については、以下を参照してください。
2     *公式英語ドキュメント:http://nginx.org/en/docs/ 
3     *公式ロシアのドキュメント:http://nginx.org/ru/docs/ 
4  
5  ユーザーnginxの。
6  worker_processes自動;
7 error_logには/ var / log / nginxの/ error.logで。
8 PID /実行/ nginx.pid。
9  
10  動的モジュールをロードします。/usr/share/nginx/README.dynamicを参照してください。
11が挙げを/ usr / share / nginxの/モジュール/ * の.conf。
12の 
13  イベント{
 14      worker_connections 1024;
15  }
 16  
17  HTTP {
 18      LOG_FORMAT主   ' $ REMOTE_ADDR - $ REMOTE_USER [$ time_local "$要求" ' 
19                        'の$状態の$ body_bytes_sent "$ HTTP_REFERER" ' 
20                        ' "$ HTTP_USER_AGENT" "$ HTTP_X_FORWARDED_FOR" ' 21  
22      のaccess_logの/ var / / nginxの/ログメインのaccess.log。
23  
24      sendfileの上。
25      TCP_NOPUSH上。
26      ;上のTCP_NODELAY
27      keepalive_timeout 65 28     types_hash_max_size 2048 ;
29  
30      の/ etc / nginxの/含むのmime.typesと、
31      default_typeアプリケーション/ octet- ストリーム。
32個の 
33      /etc/nginx/conf.dディレクトリからロードモジュール構成ファイル。
34      http://nginx.org/en/docs/ngx_core_module.html#include参照
35      #の詳細については。
図36は      /etc/nginx/conf.d/*含むの.confと、
37  
38      サーバ{
 39          8001聞くDEFAULT_SERVER。
40は          [::]聞く:8001 DEFAULT_SERVERを。
41          SERVER_NAME 10.2.1.92 42          ルートを/ usr / share / nginxの/ HTML。
43個の 
44          デフォルト・サーバ・ブロックのためのロード設定ファイル。
45は          /etc/nginx/default.d/*含むの.confと、
46  
47          位置/ {
 48                  proxy_pass http://127.0.0.1:8000 49                  proxy_set_headerホスト$ホスト;
50                  proxy_set_header X-Forwarded- $ proxy_add_x_forwarded_forについては、
51          }
 52  
53          error_page 404分の404 の.html。
54              位置= / 40x.html {
 55          }
 56  
57          error_page 500 502 503 504 / 50x.html。
58              位置= / 50x.html {
 59          }
 60      }
 61の 
62  #のTLS対応サーバーの設定。
63  64  #の    サーバー{ 
65          443 SSL HTTP2 DEFAULT_SERVERを聞きます。
66          聞く[::]:443 SSL HTTP2 DEFAULT_SERVER。
67          SERVER_NAME _; 
68          ルートは、/ usr / share / nginxの/ htmlの。
69  70          ssl_certificate "/etc/pki/nginx/server.crt"。
71          ssl_certificate_key "/etc/pki/nginx/private/server.key"。
72          ssl_session_cache共有:SSL:1メートルを。
73  #の        ssl_session_timeoutの10メートル。
74          のssl_ciphers HIGH:aNULL:!MD5; 
75          ssl_prefer_server_ciphersに。
76  77          デフォルト・サーバ・ブロックのための#ロードの設定ファイル。
78          /etc/nginx/default.d/*.confを含みます。
79  80          場所/ { 
81          } 
82  83          error_page 404 /404.html。
84              位置= /40x.html { 
85          } 
86  87          error_page 500 502 503 504 /50x.html。
88              位置= /50x.html { 
89          } 
90      } 
91  
92 }

 

 

これは重要なデバッグコマンドであります:

設定エラーを避けるために、元のファイルをバックアップするための設定ファイルnginx.conf 1.フロント、できないことも、ソース

2.構文の問題があるかどうか、変更したファイルをnginx.confチェックするためのコマンドを使用します

nginxの-t sudoの設定を確認します

設定が正しいことを確認

gunicornによってフラスコプロジェクトを開始

まず、フラスコプロジェクト、およびプロジェクトがすでにwsgi.py起動ファイルを設定されているディレクトリに切り替えます。

次のようにwsgi.py文書が読み取ります。

アプリインポートcreate_appの

アプリケーション = create_app()

もし __name__ == ' __main__ ' 
    application.run()

gunicornと仮想環境をアクティブ化

[ルート@ 67ボトルデモ] lsvirtualenv 
automationVenv
 ============== 


flaskApi
 ======== 


rlcVenv
 ======= 


[ルート@ 67ボトルデモ] #のworkon flaskApi

 

正しいことを確認するためにnginxの設定(ワードが正しく設定され成功を表してご覧ください)

[67 nginxの@ルート] nginxの-t 
構文/etc/nginx/nginx.conf設定ファイルは:nginxのですOK 
nginxの構成ファイルの /etc/nginx/nginx.confテストがあり成功

お使いのブラウザはhttpに入力します:// IP:ポートを実行しているnginxのは、nginxのは、スタートページを参照して成功した実行のnginxを示し、

nginxの再起動のコマンドを実行します。

[ルート@ 67 nginxの] #のサービスnginxの再起動 
/ binに/ systemctl再起動nginx.serviceへのリダイレクト

設定を確認する次へ:

お使いのブラウザでIPアドレスを入力します。http://10.2.1.92:8001 /ユーザー

/ユーザIは、ページフラスコプロジェクトを定義しました。

プロジェクトビュー定義されたコンテンツをfalsk参照してください、それはつまりnginxの+ gunicorn良い構成との間の関係:

 

 

 

flaskDemoプロジェクト住所:

https://github.com/wangju003/flaskDemo.git

参照文献:

https://baijiahao.baidu.com/s?id=1616440047552092518&wfr=spider&for=pc 

https://www.jianshu.com/p/5600af9ff238

おすすめ

転載: www.cnblogs.com/kaerxifa/p/11576567.html