Uwsgi nginxのApacheは世論調査のepollを選択します

 

uWSGIはWSGIプロトコル、uwsgi、HTTPおよびその他のプロトコルを実装するWebサーバーです。HttpUwsgiModule uWSGIでnginxの役割は、サーバーと交換されます。
WSGI / uwsgi / uWSGIこれらの3つの概念を区別に注意してください。
WSGIは、通信プロトコルです。
uwsgiプロトコルは、行の代わりに、他のネットワークサーバと、このサーバuWSGIデータ通信に用いられる通信プロトコルです。
uWSGIはuwsgiとWSGI 2つのプロトコルのWebサーバーを実現しています。
uwsgi uWSGIサーバプロトコルは、情報(情報の種類)の送信のタイプを定義する独自のプロトコルであり、情報の伝送のために記載した各uwsgiパケットの4バイトのタイプの前、それはWSGIと比較される二つのことです。

 

ローカルの仮想環境では、プロジェクトのルートディレクトリには、すべてのパッケージを収集するためのコマンドを実行
ピップ凍結> plist.txt
このサーバへの良好なカタログFTPアップロードソフトウェア開発プロジェクトを経由して
のジャンプがある場合は、インストールとは、仮想環境を作成しますこの工程を経
須藤はapt-GET-virtualenvのは、Pythonのインストール
Pythonの-m Venv 11_venv [仮想環境名を]

仮想環境での作業は、すべての必要なパッケージをインストールする
ソース/ 11_venv / binに/アクティブ
-r plist.txtをインストールPIP

settings.pyファイルに変更
DEBUG = Falseの
サーバーへのIPアクセスを表し、[、 '*']のallow_hostsの=を

正常に動作し、サーバを起動しますが、静的ファイルをロードすることはできません
1:uWSGI
uWSGIは、すべてのインターフェイスのWSGIを実装し、高速、自己修復され、開発者やシステム管理者に優しいサーバーの
インストールuWSGI
PIPはuwsgiをインストール

注(インストールエラーが発生した):uwsgi uwsgiインストールエラーをインストールPIP
以前PythonのコンピュータのバージョンはPythonのバージョンによって引き起こされる、インストールに失敗する可能性が修正されている場合は、
どのバージョンのを確認するためにコンピュータを使用して、端末入力のpythonを(私はのpython3ました0.5)
その後、おそらく数分3.5のpython-devのインストール
はsudo apt-getをインストールlibpython3.5-devの

再び実行
uwsgiをインストールPIP

成功したインストール
設定uWSGI、プロジェクト内のuwsgi.ini新しいファイルには、次のような構成の書き込み
[uwsgi]
ソケット= 127.0.0.1:ポートを(nginxのを使用している場合は、ソケットを使用して接続)
#= HTTPネットワークIP外:ポート(、直接Webサーバーを行いますHTTPを使用)
CHDIR =プロジェクトのルートディレクトリの
プロジェクトルートディレクトリからの相対WSGIファイル=プロジェクトディレクトリのwsgi.pyファイル、
プロセス= 4つの
スレッド2 =
マスター= Trueの
PidFileオプション= uwsgi.pid
デーモン化= uswgi.log

我的配置参考
[uwsgi]
ソケット= 10.212.63.20:8000
#HTTP = 127.0.0.1:8000
のchdir = /ホーム/ shihao /デスクトップ/ bushulianxi / TEST7
WSGIファイル= TEST7 / wsgi.py
プロセス= 4つの
スレッド= 2
マスター= Trueの
pidファイル= uwsgi.pid
デーモン化= uswgi.log

開始:uwsgi --ini uwsgi.ini(2 INI前に注意して、プロジェクトディレクトリの下に行われる必要がある- )
を停止しますuwsgi --stop uwsgi.pid
再起動:uwsgi --reload uwsgi.pid
結果:httpプロトコルを使用してサイトを表示します操作、正常に動作しますが、静的ファイルをロードすることはできません
2:nginxの使用
:nginxの役割
のロードバランシングを:複数のサーバがリクエストを処理してターンを取るには
プロキシを反映:実サーバ隠す
クライアントは、nginxのを要求し、その後、nginxの要求uwsgiにより、ジャンゴを実行します。アーキテクチャを実装します枠組みの中でPythonのコード
nginxの+ uwsgiのpythonもDjangoのために限定されるものではなく、他のWebフレーム用のコードを使用することができる
圧縮ファイルまたはコマンドnginxの取り付けダウンロードするには、公式ウェブサイトに
はsudo apt-getをインストールnginxのを

/ usr / local / nginxの/ sbinににデフォルトでインストール / ディレクトリ(の私は/ usr / sbinに下)**注:これは、コマンドを実行し、このディレクトリを入力するのが最適です**
ビューバージョン:sudoのnginxの-v
起動します。sudo nginxの
停止: sudoのnginxの-s停止
、再起動します。sudo -s nginxのリロード
のnginxを実行しているブラウザを使用して結果を表示するには

いくつかの注意:
#nginxのは、デフォルトのディレクトリにインストールされていない場合、あなたはnginxのインストールディレクトリを検索することができます
sudoのPS -ajx | grepをnginxの

#Nginx.confビュープロファイルディレクトリ(あなたが最初の安全な転送ディレクトリを入力する必要があります)
sudoをnginxの-t

#80ポートが占有されている場合、プログラムが占有するポート80クローズするコマンドを使用して
sudoの定着器-k 80 / TCPを

プロジェクトuwsgiポインティング:(nginxの下に/私の/ etcにある)編集nginx.confファイルを
sudoをvimのnginx.conf

新しいロケーションサーバエントリーポイントIPで加えポートuwsgi
位置/ {
含むuwsgi_paramsと、uwsgiは、すべてのパラメータ
IPポートuwsgi uwsgi_passを;
}

注意:元nginx.confをコメントアウトしなければならない2つの行があります。
含ま/etc/nginx/conf.d/*.conf;
インクルードは、/ etc / nginxの/ * /サイト対応類;

Uwsgi.ini HTTP無効、ソケットを起動し、ファイルを修正し
、再起動nginxの、uwsgi
結果:ブラウザでViewプロジェクトを、あなたは正しくロードされません。そのファイルを見つけることができ、その後、静的ファイルの問題解決
3:静的ファイルを
まだファイルを見つけることができませんでしたついに解決
静的ファイルのすべてがnginxのからであり、要求uwsgiに行っていない
、nginxのを設定したスタティックエントリのconf / nginx.confファイルを開き、サーバーを見つけて、新しい場所の追加
LOCATION /静的{
/エイリアスの/ varをWWW / TEST5 /静的/;#注:アドレスは、そのカジュアル与えられます
}

"/ varは/ / TEST5 / WWW"サーバー上のディレクトリ構造を作成
CDの/ var / WWWの
は、mkdir TEST5の
CDのTEST5は
静的MKDIR
777静的にsudo chmodコマンドを

変更settings.pyファイル
STATIC_ROOT = 'の/ var / WWW /静的TEST5 / /'
STATIC_URL = '/静的/'

指定されたディレクトリのstatic_rootにすべての静的ファイルを収集します:python manage.py collectstatic
この時点では、静的なファイルは/ var / www /のTEST5 /静的なフォルダがあります
再起動nginxの、uwsgiを

 

 

 

 

選択LinuxのIO多重化のシニアトランジット、長所と短所投票のファイルディスクリプタを選択し、ファイルディスクリプタとの世論調査欠点。

一、select的缺点:

1、编写难度大

2、同时处理的文件描述符是有上限的

3、每次需要重新设定fd集合

4、性能会随用户的增多而效率降低

5、输入输出参数在一起
select的几大缺点:
(1)每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大
(2)同时每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也很大
(3)select支持的文件描述符数量太小了,默认是1024

二、poll的缺点

poll是对select的一种改良,最突出的改良有两点:

1、文件描述符数量没有上限

2、将输入输出参数进行分离,不用每次设定

那么poll的缺点是:

poll中监听的文件描述符数目增多时:

1、和select一样,poll返回后,需要轮询pollfd来获取就绪的描述符

2、每次调用poll都需要大把大量客户端在一时刻可能只有很少的处于就绪状态,因此随着监视的描述符数量的增长,其效率也会线性下降。

三、epoll的优点:

1、文件描述符数目没有上限:通过epoll_ctl()来注册一个文件描述符,内核中使用红黑树的数据结构来管理所有需要监控的文件描述符。

2、基于事件就绪通知方式:一旦被监听的某个文件描述符就绪,内核会采用类似于callback的回调机制,迅速激活这个文件描述符,这样随着文件描述符数量的增加,也不会影响判定就绪的性能。

3、维护就绪队列:当文件描述符就绪,就会被放到内核中的一个就绪队列中,这样调用epoll_weit获取就绪文件描述符的时候,只要取队列中的元素即可,操作的时间复杂度恒为O(1)。

4、关于有些地方说:epoll还有内存映射机制,即内核将就绪队列通过mmap的方式映射到用户态,避免了拷贝内存这样的额外性能开销。关于这一点,我并不认为这是epoll的优点,因为他和epoll底层工作方式相悖。mmap是一种共享内存,但是我们都知道共享内存中一旦有数据,用户就能直接看到,并且使用,但是epoll_wait在取数据时传入了一块缓存区这是和贡献内存相悖的其一;其二是操作系统并不相信任何人,尤其是用户,它不会让用户直接去取内核中的数据。

 


文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。


UTF-8 国际组织 3字节
GBK 防本土 2字节

哈希密码:密钥 加颜 不可逆算法

put 修改全部
patch 指定修改
get
post
head

 

おすすめ

転載: www.cnblogs.com/wyf2019/p/10959657.html