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