Ubuntuの+ nginxの+ uwsgiは、Ubuntuの+ nginxの+ uwsgi展開DjangoプロジェクトのDjangoプロジェクトの概要を展開します

Ubuntuの+ nginxの+ uwsgi展開Djangoプロジェクト

序文

Djangoの展開がWindows上でIISまたはApacheを使用する多くの方法があることができ、nginxのは、することができます。

nginxの+ uwsgi方法を使用すると、すべてのリクエストが最もフロントエンドサーバーとしてnginxのある、より一般的な方法の一つであり、それはWEB統一管理要求を受信します。nginxの自分の手にすべての静的な要求。その後、nginxのすべてのリクエストがDjangoの非静的uwsgiを通過、それはジャンゴによって処理され、WEBは要求を完了します。Uwsgi橋の上にも同様の効果、ブリッジの役割を果たしています。

Ubuntuでuwsgiサーバーを展開し、nginxのを設定するには、ローカルの開発Djangoプロジェクトは、nginxの+ uwsgi +ライン上でDjangoの上で実行して終了しました。関連する手順の次のコンパイル。

1、サーバ構成virtualenvの

あなたは直接Pythonランタイム環境を使用したくない場合は、サーバー上の仮想ENVをインストールして設定する必要があります。Python環境を直接使用する場合は、この手順を省略することができます。

  pip install virtualenv

  pip install virtualenvwrapper

我々は、コマンドを使用できるように環境変数を設定する必要があります。

〜での.bash_profileを作成し、次の行を追加します。

  輸出WORKON_HOME = $ HOME / .virtualenvs
  輸出PROJECT_HOME = $ HOME /ワークスペース
  ソース/usr/local/bin/virtualenvwrapper.sh

ソース〜/ .bash_profileを:次にコマンドを実行します。

設定は完了です。次のコマンドを使用します。

  mkvirtualenv#its_nameは、仮想のenv作成
  its_name#は(あなたがits_nameを指定しない場合)、それはすべての既存のENVリストすることです下のenvに切り替えるworkonを
  現在のenvが非アクティブ#出口
  rmvirtualenvをits_name#仮想のenvを削除

2、インストールの依存関係

まず、ローカルの開発は、ピップの依存関係のリストをエクスポートする必要があります。

pip freeze > plist.txt

サーバ環境と依存バッチインストールにこのファイルを置きます。

workon [虚拟环境名称] pip install -r plist.txt -i https://mirrors.tuna.tsinghua.edu.cn # 这里使用清华大学镜像源安装

3、Djangoプロジェクトを変更します。

あなたはsettings.pyファイルを変更する必要があり、デバッグモードを終了します。

DEBUG = False
ALLOW_HOSTS=['*','ipdress'] #加入访问服务器的ip

図4に示すように、構成uwsgi

インストール:インストールuwsgiピップ

ルートディレクトリの下に必要なDjangoプロジェクト(manage.pyと同じディレクトリ)、新しいuwsgi.iniファイルには、設定を記述します。  

コードをコピー
Myweb_uwsgi.iniファイル#
[uwsgi] 
ソケット=:8080#実際のサービスポート、
#Djangoのプロジェクトのルートディレクトリ(絶対パス)
=のchdir /ホーム/ユーザー名/ myweb  プロジェクトに#wsgi.pyファイルの場所 モジュール= myweb.wsgi  =マスター真のランニングには、プロセスのの#4 =数処理= trueに真空を使用nginx连接时,使用socket
コードをコピー

uwsgiコマンドでプロジェクトを開始するmyweb_uwsgi.iniファイルを読み込んで、mywebディレクトリの下にプロジェクトに切り替えます。

启动uwsgi:uwsgi --ini xxx.ini
关闭uwsgi:uwsgi --stop xxx.pid
重启uwsgi:uwsgi --reload xxx.pid

 状態を起動します。

コードをコピー
[uWSGI] myweb_uwsgi.iniからINI構成になっ
*** [土3月12日13時05分06秒2019]にuWSGI 2.0.12(32bit版)を開始*** 
バージョンでコンパイルされた:2016年1月26日に4.8.4を午前6時14分:41の
OS:Linuxの-3.19.0-25ジェネリック#26〜14.04.1-UbuntuのSMP金7月24日21時18分○○秒UTC 2015 
ノード名:Ubuntuの
マシン:i686の
クロックソース:UNIXが
検出されたCPUコアの数:2 
現在作業ディレクトリ:/ホーム/ fnngj / pydj / myweb 
バイナリパス検出:は/ usr / local / binに/ uwsgiを内部ルーティングのサポートは、PCREサポート付きで再構築しません!
/ホーム/ fnngj / pydj / mywebへのchdir()
あなたのプロセス数の上限は15962である
、あなたのメモリ・ページ・サイズが4096バイトである 
最大ファイルディスクリプタ数を検出:1024
堅牢なミューテックスのpthread:ロックエンジン
雷ロック:使用不可(あなたは--thunderロックでそれを有効にすることができます)
TCPアドレスにバインドされたuwsgiソケット0:8000 FD 3 
Pythonのバージョン:3.4.3(デフォルト、2015年10月14日、20時37分06秒)[GCC 4.8。 4] 
*** Pythonのスレッドサポートが無効になっています。あなたは*** --enable-のスレッドでそれを有効にすることができ
0x8b52dc0で初期化Pythonのメインインタプリタ
バックログが100個の接続に制限されて聞くサーバーソケット
労働者の優雅な操作のために、あなたの慈悲は60秒で
マッピングされた4つのコアの319920バイト(312キロバイト)
* **動作モード:***プリフォーク
のpidインタプリタ0x8b52dc0に1秒で(マウントポイント= '')準備ができてWSGIアプリ0:7158(デフォルトのアプリは) 
uWSGIが複数のインタプリタモードで実行されている*** ***
(PID:7158)をuWSGIマスター・プロセスを生み出した
(uWSGIワーカー1を生み出しPID:7160、コア:1)
スポーンuWSGIワーカー2(PID:7161、コア:1)
uWSGIワーカー3(:7162、コア:PID 1)生成された
uWSGIワーカー4スポーン(:7163、コア:PIDが1)
コードをコピー

間違っている場合、我々は、構成ファイルが正しく設定されていないのパラメータをチェックしなければならない、ビューの起動情報uwsgiに注意してください。

5、nginxの設定

1、nginxのをインストールします。

   sudo apt install nginx

2、ディレクトリ構造:

  メインの設定ファイルnginx.confの/ etc / nginxのディレクトリにあるUbuntuのnginxの設定ファイル、

      設定ファイルはサイト-利用可能/ダウン/ディレクトリにあり、fefault含まれ、/サイト対応/リンクファイルは同じ名前を持っています。nginxのとApache Ubuntuのディレクトリ構造の下で、設定ファイルは基本的に同じです。

図3に示すように、nginxのを構成されています。

  cd /etc/nginx/sites-available
  vim default

     次のようになることがあります。  

コードをコピー
#以下は、サーバー上で提供さnginx.conf部分です:
サーバーは{ 
        #アクセスするために使用される。これは、ポートである
        80を聞いて
        サーバー名はlocalhostを 文字コードUTF-8。; ルートは/ var / WWW / HTML ;インデックスのindex.html index.htmをdebian.html-index.nginx ; #/var/log/nginx/access.logログファイルのaccess_log 、error_logに/var/log/nginx/error.log ; client_max_body_sizeの75M ; #は/場所の重要な部分であるuwsgiサービス接続を、指定{ザはuwsgi_params含む; #uwsgi同じコンテンツ127.0.0.1:8080 uwsgi_pass ; #30リンクタイムアウトuwsgi_read_timeoutを; }静的フォルダ設定#ロケーション/静的/ {ON AUTOINDEX ;別名/ホーム/ユーザ名/ジャンゴプロジェクト/静的/; }#アップロードフォルダ設定LOCATION /メディア/ {ON AUTOINDEX ;エイリアス/ホーム/ユーザー名/ジャンゴ・プロジェクト/メディア/ ; 
}
}
コードをコピー

 プロジェクトの静的なディレクトリにコピーされているDjangoの管理静的ディレクトリ内の次のソースへの方法を設定することができますので、/静的/ adminに、あなたは、組み込みのDjangoのadminのバックエンドを使用する場合は、管理者静的なディレクトリにアクセスすることができない、またはadminディレクトリ:注意。

4、nginxのサービスを開始します。

  nginxのを起動します。サービスnginxのは、起動
  近いnginxのを:サービスnginxの停止
  、再起動nginxの:サービスnginxの再起動
  ステータスを表示:サービスnginxのステータス

  浏览器访问http://localhost/ 可看到django项目已运行。

6、まとめ

  1. テストDjangoプロジェクト、正常な動作を保証します。
  2. インストールuwsgi、Djangoのプロジェクトファイル、設定uwsgi.ini、uwsgiを開始します。
  3. nginxの、コンフィギュレーション・nginx.confをインストールし、nginxのを起動します。
  4. ユーザーの権限設定、プロジェクトフォルダは、フォルダのアクセス許可は、ファイルとデータベースの設定をアップロードすることに注意してください、ネットワークユーザは、WWW-データです。
トップへグッドテキスト 私の関心 古紙回収

序文

Djangoの展開がWindows上でIISまたはApacheを使用する多くの方法があることができ、nginxのは、することができます。

nginxの+ uwsgi方法を使用すると、すべてのリクエストが最もフロントエンドサーバーとしてnginxのある、より一般的な方法の一つであり、それはWEB統一管理要求を受信します。nginxの自分の手にすべての静的な要求。その後、nginxのすべてのリクエストがDjangoの非静的uwsgiを通過、それはジャンゴによって処理され、WEBは要求を完了します。Uwsgi橋の上にも同様の効果、ブリッジの役割を果たしています。

Ubuntuでuwsgiサーバーを展開し、nginxのを設定するには、ローカルの開発Djangoプロジェクトは、nginxの+ uwsgi +ライン上でDjangoの上で実行して終了しました。関連する手順の次のコンパイル。

1、サーバ構成virtualenvの

あなたは直接Pythonランタイム環境を使用したくない場合は、サーバー上の仮想ENVをインストールして設定する必要があります。Python環境を直接使用する場合は、この手順を省略することができます。

  pip install virtualenv

  pip install virtualenvwrapper

我々は、コマンドを使用できるように環境変数を設定する必要があります。

〜での.bash_profileを作成し、次の行を追加します。

  輸出WORKON_HOME = $ HOME / .virtualenvs
  輸出PROJECT_HOME = $ HOME /ワークスペース
  ソース/usr/local/bin/virtualenvwrapper.sh

ソース〜/ .bash_profileを:次にコマンドを実行します。

設定は完了です。次のコマンドを使用します。

  mkvirtualenv#its_nameは、仮想のenv作成
  its_name#は(あなたがits_nameを指定しない場合)、それはすべての既存のENVリストすることです下のenvに切り替えるworkonを
  現在のenvが非アクティブ#出口
  rmvirtualenvをits_name#仮想のenvを削除

2、インストールの依存関係

まず、ローカルの開発は、ピップの依存関係のリストをエクスポートする必要があります。

pip freeze > plist.txt

サーバ環境と依存バッチインストールにこのファイルを置きます。

workon [虚拟环境名称] pip install -r plist.txt -i https://mirrors.tuna.tsinghua.edu.cn # 这里使用清华大学镜像源安装

3、Djangoプロジェクトを変更します。

あなたはsettings.pyファイルを変更する必要があり、デバッグモードを終了します。

DEBUG = False
ALLOW_HOSTS=['*','ipdress'] #加入访问服务器的ip

図4に示すように、構成uwsgi

インストール:インストールuwsgiピップ

ルートディレクトリの下に必要なDjangoプロジェクト(manage.pyと同じディレクトリ)、新しいuwsgi.iniファイルには、設定を記述します。  

コードをコピー
Myweb_uwsgi.iniファイル#
[uwsgi] 
ソケット=:8080#実際のサービスポート、
#Djangoのプロジェクトのルートディレクトリ(絶対パス)
=のchdir /ホーム/ユーザー名/ myweb  プロジェクトに#wsgi.pyファイルの場所 モジュール= myweb.wsgi  =マスター真のランニングには、プロセスのの#4 =数処理= trueに真空を使用nginx连接时,使用socket
コードをコピー

uwsgiコマンドでプロジェクトを開始するmyweb_uwsgi.iniファイルを読み込んで、mywebディレクトリの下にプロジェクトに切り替えます。

启动uwsgi:uwsgi --ini xxx.ini
关闭uwsgi:uwsgi --stop xxx.pid
重启uwsgi:uwsgi --reload xxx.pid

 状態を起動します。

コードをコピー
[uWSGI] myweb_uwsgi.iniからINI構成になっ
*** [土3月12日13時05分06秒2019]にuWSGI 2.0.12(32bit版)を開始*** 
バージョンでコンパイルされた:2016年1月26日に4.8.4を午前6時14分:41の
OS:Linuxの-3.19.0-25ジェネリック#26〜14.04.1-UbuntuのSMP金7月24日21時18分○○秒UTC 2015 
ノード名:Ubuntuの
マシン:i686の
クロックソース:UNIXが
検出されたCPUコアの数:2 
現在作業ディレクトリ:/ホーム/ fnngj / pydj / myweb 
バイナリパス検出:は/ usr / local / binに/ uwsgiを内部ルーティングのサポートは、PCREサポート付きで再構築しません!
/ホーム/ fnngj / pydj / mywebへのchdir()
あなたのプロセス数の上限は15962である
、あなたのメモリ・ページ・サイズが4096バイトである 
最大ファイルディスクリプタ数を検出:1024
堅牢なミューテックスのpthread:ロックエンジン 
雷ロック:使用不可(あなたは--thunderロックでそれを有効にすることができます)
TCPアドレスにバインドされたuwsgiソケット0:8000 FD 3 
Pythonのバージョン:3.4.3(デフォルト、2015年10月14日、午前20時37分: 06)[GCC 4.8.4] 
*** Pythonのスレッドがサポートは無効になっています。あなたは*** --enable-のスレッドでそれを有効にすることができ
0x8b52dc0で初期化Pythonのメインインタプリタ
バックログが100個の接続に制限されて聞くサーバーソケット
労働者の優雅な操作のために、あなたの慈悲は60秒で
マッピングされた4つのコアの319920バイト(312キロバイト)
* **動作モード:***プリフォーク
WSGIアプリ0(マウントポイント=「」)インタプリタ0x8b52dc0 pidの上の1秒で準備ができて:7158(デフォルトのアプリは) 
uWSGIが複数のインタプリタモードで実行されている*** ***
(PID:7158)をuWSGIマスター・プロセスを生み出した
(uWSGIワーカー1を生み出しPID:7160、コア:1)
スポーンuWSGIワーカー2(PID:7161、コア:1)
uWSGIワーカー3(:7162、コア:PID 1)生成された
uWSGIワーカー4スポーン(:7163、コア:PIDが1)
コードをコピー

間違っている場合、我々は、構成ファイルが正しく設定されていないのパラメータをチェックしなければならない、ビューの起動情報uwsgiに注意してください。

5、nginxの設定

1、nginxのをインストールします。

   sudo apt install nginx

2、ディレクトリ構造:

  メインの設定ファイルnginx.confの/ etc / nginxのディレクトリにあるUbuntuのnginxの設定ファイル、

      設定ファイルはサイト-利用可能/ダウン/ディレクトリにあり、fefault含まれ、/サイト対応/リンクファイルは同じ名前を持っています。nginxのとApache Ubuntuのディレクトリ構造の下で、設定ファイルは基本的に同じです。

図3に示すように、nginxのを構成されています。

  cd /etc/nginx/sites-available
  vim default

     次のようになることがあります。  

コードをコピー
#以下は、サーバー上で提供さnginx.conf部分です:
サーバーは{ 
        #アクセスするために使用される。これは、ポートである
        80を聞いて
        サーバー名はlocalhostを 文字コードUTF-8。; ルートは/ var / WWW / HTML ;インデックスのindex.html index.htmをdebian.html-index.nginx ; #/var/log/nginx/access.logログファイルのaccess_log 、error_logに/var/log/nginx/error.log ; client_max_body_sizeの75M ; #は/場所の重要な部分であるuwsgiサービス接続を、指定{ザはuwsgi_params含む; #uwsgi同じコンテンツ127.0.0.1:8080 uwsgi_pass ; #30リンクタイムアウトuwsgi_read_timeoutを; }静的フォルダ設定#ロケーション/静的/ {ON AUTOINDEX ;別名/ホーム/ユーザ名/ジャンゴプロジェクト/静的/; }#アップロードフォルダ設定LOCATION /メディア/ {ON AUTOINDEX ;エイリアス/ホーム/ユーザー名/ジャンゴ・プロジェクト/メディア/ ; 
}
}
コードをコピー

 プロジェクトの静的なディレクトリにコピーされているDjangoの管理静的ディレクトリ内の次のソースへの方法を設定することができますので、/静的/ adminに、あなたは、組み込みのDjangoのadminのバックエンドを使用する場合は、管理者静的なディレクトリにアクセスすることができない、またはadminディレクトリ:注意。

4、nginxのサービスを開始します。

  nginxのを起動します。サービスnginxのは、起動
  近いnginxのを:サービスnginxの停止
  、再起動nginxの:サービスnginxの再起動
  ステータスを表示:サービスnginxのステータス

  浏览器访问http://localhost/ 可看到django项目已运行。

6、まとめ

  1. テストDjangoプロジェクト、正常な動作を保証します。
  2. インストールuwsgi、Djangoのプロジェクトファイル、設定uwsgi.ini、uwsgiを開始します。
  3. nginxの、コンフィギュレーション・nginx.confをインストールし、nginxのを起動します。
  4. ユーザーの権限設定、プロジェクトフォルダは、フォルダのアクセス許可は、ファイルとデータベースの設定をアップロードすることに注意してください、ネットワークユーザは、WWW-データです。

おすすめ

転載: www.cnblogs.com/sdlyxyf/p/11356866.html