Nginxをインストールする まずcentosイメージをプルします 最新のnginx1.19バージョンをインストールします: ダウンロードアドレス Centos イメージを実行し、次のように入力します。 docker run --name ver -d -p 8051:80 -it nginx_start nginx-1.19.0.tar.gz パッケージをコンテナに配置します。 nginx をインストールする前に、いくつかの依存関係をインストールします。 yum -y gccをインストール gcc-c++ autoconf automake make yum -y インストール zlib zlib-devel openssl openssl-devel pcre pcre-devel 解凍: tar -zxvf nginx-1.19.0.tar.gz #nginx-1.10.1を入力してnginxを設定します nginx-1.19.0をインストールします #nginx を設定する #--prefix はインストール ディレクトリを指定します#/usr/local/nginx はインストール ディレクトリであり、ダウンロードしたファイルのディレクトリと同じにすることはできません#./configure --prefix=/usr/local/nginx #ssl stub_status モジュールで strem モジュール –with-stream を追加して、tcp プロトコルを送信できるようにします #http_stub_status_module ステータス監視 #http_ssl_module https を構成します #stream を転送するように tcp を設定します #http_gzip_static_module 圧縮 #http_sub_module リクエストを置き換えます ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream 注記: ここで、pcre と zlib が見つからないというエラーが発生します。yum 次に インストールが成功すると、 成功を確認するには、 画像を生成する 10. Centos コンテナをミラーとして nginx とともにパッケージ化します Python 2.7環境をインストールする yum インストール gcc openssl-devel bzip2-devel wgetでPython 2.7をダウンロードし、解凍します。 yum -y wget をインストールします /usr/srcディレクトリに入り、wgetを使用してpython 2.7をダウンロードします。 /usr/src に移動します https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz を取得します。 python2.7を再度解凍する tar -zxvf Python-2.7.15.tgz Python 2.7をインストールする 上記で解凍したPython-2.7.15を入力し、以下のコマンドラインを使用して解凍したファイルにインストールします。 Python-2.7.15をインストール ./configure --enable-optimizations altinstall を実行する PIPをインストールする カール "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py" python2.7 取得pip.py バージョンが2.7であり、requirements.txtに UWSGIをインストールする
問題を解決するには、 uWSGIサーバーを構成する 関連する [uwsgi] ソケット = /tmp/uwsgi.sock chown-socket = nginx:nginx chmod-ソケット = 664 # SIGTERM での正常なシャットダウンについては、https://github.com/unbit/uwsgi/issues/849#issuecomment-118869386 を参照してください。 フックマスター開始 = unix_signal:15 gracefully_kill_them_all プロジェクト ディレクトリ /app/ に [uwsgi] uwsgi-ソケット = /tmp/uwsgi.sock chmod-ソケット = 777 呼び出し可能 = アプリ wsgi ファイル = main.py バッファサイズ = 65535 プロセス = %(%k * 2) スレッド = %(%k * 20 各パラメータの意味は次のとおりです。 uwsgi-socket: uwsgi-socket 構成項目は、Unix ソケットであるファイル、つまり、ネットワーク アドレスではなくファイル システムを介してアドレス指定され、アクセスされるソケットを指定します。 uwsgi-socket を設定した後、chmod-socket も設定する必要があります。 callable: リクエストを受信したときに、uwsgi によってロードされたモジュール内のどの変数が呼び出されるか設定します。デフォルトは、「application」という名前の変数です。 wsgi-file: 指定された wsgi ファイルをロードします。 buffer-size: uwsgi パケット解析に使用される内部バッファ サイズを設定します。デフォルトは4kです。 プロセスとスレッドはそれぞれ開かれているプロセスとスレッドの数であり、%kはCPUコアの数を表すマジックナンバー変数です。デュアルコアCPUの場合、 スーパーバイザーをインストールする(オプション) 直接 yum インストールを行うと、「 ここで、スーパーバイザーが nginx および uwsgi サービスをリッスンするように設定します。 まず、 supervisord.conf ディレクトリは次のように構成されています。 ; スーパーバイザー設定ファイル [unix_http_サーバー] file=/var/run/supervisor/supervisor.sock ; (ソケットファイルへのパス) chmod=0700 ; sockef ファイル モード (デフォルト 0700) [監督者] logfile=/var/log/supervisor/supervisord.log; (メインログファイル; デフォルト $CWD/supervisord.log) pidfile=/var/run/supervisord.pid; (supervisord pidfile; デフォルト supervisord.pid) childlogdir=/var/log/supervisor; ('AUTO' 子ログディレクトリ、デフォルト $TEMP) ; 以下のセクションはRPCの設定ファイルに残しておく必要があります ; (supervisorctl/webインターフェース)が機能するには、追加のインターフェースが必要になる場合があります。 ; 別々の rpcinterface: セクションで定義することで追加されます [rpcインターフェース:スーパーバイザ] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [スーパーバイザーctl] serverurl=unix:///var/run/supervisor.sock ; unix ソケットの場合は unix:// URL を使用します ; [include]セクションには「files」設定のみを含めることができます。 ; 設定では複数のファイルをリストできます(空白または ; 改行) ワイルドカードも使用できます。ファイル名は ; このファイルからの相対として解釈されます。インクルードされたファイルは*できません* ; ファイル自体を含めます。 [含む] ファイル = /etc/supervisor/conf.d/*.conf 次に、conf.d ディレクトリに [監督者] ノーデーモン=true [プログラム:uwsgi] コマンド=/usr/bin/uwsgi --ini /etc/uwsgi/uwsgi.ini --die-on-term --need-app stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 [プログラム:nginx] コマンド=/usr/local/nginx/sbin/nginx stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 # 正常な停止については、http://nginx.org/en/docs/control.html を参照してください。 ストップシグナル=QUIT 上記のパスはすべて実際のディレクトリ構成です。異なる場合は変更する必要があります。 次にスーパーバイザーを起動します。 上記の構成が完了したら、コンテナを再パッケージ化して base_v3から # 作業ディレクトリを作成する RUN mkdir /app # コンテナの起動時に実行されるすべてのコマンドがアプリディレクトリWORKDIR /appで実行されることを指定します # nginx の設定を置き換える COPY nginx.conf /etc/nginx/nginx.conf # ローカルアプリディレクトリの内容をコンテナのアプリディレクトリにコピーします COPY ./app/ /app/ ここで、Dockerfile およびアプリと同じディレクトリに別の nginx.conf ファイルを作成し、nginx.conf の内容を次のように変更します。 ユーザー nginx; ワーカープロセス 1; error_log /usr/local/nginx/logs/error.log 警告; pid /usr/local/nginx/logs/nginx.pid; ワーカー_rlimit_nofile 20480; イベント { epoll を使用します。 ワーカー接続数 20480; multi_accept オン; } http { /usr/local/nginx/conf/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 /var/log/nginx/access.log メイン; ファイル送信オン; #tcp_nopush オン; keepalive_timeout 300秒; client_header_timeout 300秒; client_body_timeout 300秒; gzip オン; gzip_min_length 1k; gzip_バッファ 4 16k; gzip_types テキスト/html アプリケーション/javascript アプリケーション/json; /usr/local/nginx/conf.d/*.conf をインクルードします。 サーバー{ 聞く 6666; 文字セット utf-8; クライアントの最大ボディサイズ 75M; 位置 / { uwsgi_params を含めます。 uwsgi_pass unix:///tmp/uwsgi.sock; uwsgi_send_timeout 300; uwsgi_connect_timeout 300; uwsgi_read_timeout 300; } } } 次に、 次に、インターフェース テストをランダムに実行します。 これで、Docker を使用した python Flask + nginx + uwsgi コンテナーの構築に関するこの記事は終了です。Docker を使用した Flask + nginx + uwsgi の構築に関する関連コンテンツの詳細については、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL のソートとページング (order by と limit) と既存の落とし穴
この記事の例では、グラフィック検証コードを実装するためのVueの具体的なコードを参考までに共有してい...
1. 環境整備1.1 基本環境NTP設定: 省略 #時間の一貫性を確保するためにNTPサービスを設定...
jsx/tsxファイルを直接作成できます今回のプロジェクト構成は以下のとおりです。 vueファイルで...
HTML で長いデータを表示する場合、マウスをその上に移動するとデータを切り捨てて完全なデータを表示...
目次ミューテーションオブザーバーAPI特徴インターセクションオブザーバーAPI例えば画像の遅延読み込...
例: nginx ログには、アクセス ログとエラー ログの 2 つの主な種類があります。アクセス ロ...
構造関連タグ--------------------------------------------...
序文多くの管理・オフィスシステムでは、ツリー構造がいたるところで見られます。たとえば、「部門」や「機...
プロセス構造図Nginx はマルチプロセス構造です。マルチプロセス構造は、次のような Nginx の...
この記事では、自作メニューをクリックする効果を実現するためのJavaScriptの具体的なコードを参...
実行中のコンテナに入る # コンテナに入り、新しいターミナルを開きます# docker exec -...
Win10 システムをインストールしていて、k8s クラスターを構築する場合、Win10 に付属する...
序文日曜日に自宅で web.dev の 2020 3 日間ライブを視聴したところ、興味深い点がたくさ...
この記事は、透明度を変えてカルーセルにするXiaomiカルーセルを真似て書いたものです。初心者なので...
任意のテキスト エディターを開き、次のコードをコピーして、たとえば SomeFilename.htm...