2013-05-03 6 views
5

利用可能なチュートリアルのほとんどは、上流のHTTPサーバー(NGINXなど)でuWSGIを設定する方法を示しています。しかし、uWSGIだけでも、ルータ/プロキシ/ロードバランサとして美しく機能することができます。this 私のプロジェクトではNGINXを設定したくなかったので、uWSGIでWebページを提供するオプションを検討し始めました。ここの答えは、ピラミッドで設定する方法を示しています。ピラミッド(NGINXなし)を使用したWebサーバーとしてのuWSGIの設定

答えて

10

pyramid_mongodb scaffoldを使用しています。これはpython3で動作させるために変更しました。詳細については、hereを参照してください。 Pyramidプロジェクト(pcreate -s pyramid_mongodb MyProjectで作成)があると仮定します。我々はuWSGIを使用しているので、ここで が開発/ production.ini

また
[uwsgi] 
http = 0.0.0.0:8080 
#http-to /tmp/uwsgi.sock - use this for standalone mode 
#socket = :9050 
master = true 

processes = 2 

harakiri = 60 
harakiri-verbose = true 
limit-post = 65536 
post-buffering = 8192 

daemonize = ./uwsgi.log 
pidfile = ./orange_uwsgi.pid 

listen = 128 

max-requests = 1000 

reload-on-as = 128 
reload-on-rss = 96 
no-orphans = true 

#logto= <log file> 
log-slow = true 

virtualenv = <path to virtual environment> 

#file = /path/to/pyramid.wsgi 
#callable = application 

need-app = true 

に必要なuWSGI構成されている私たちは uwsgi --ini-paste development.ini

サーバーの使用を実行するには、INI

#[server:main] 
#use = egg:waitress#main 
#host = 0.0.0.0 
#port = 6544 

からserver部分をコメントアウトすることができます

2

さらに簡単に!すべての "development.ini"ファイルを変更する必要はありません。

from pyramid.paster import get_app,setup_logging 

ini_path = '/pathto/myapp/development.ini' 
setup_logging(ini_path) 
application = get_app(ini_path,'main') 

のは、それの内容で「myapp.conf」を言わせて作成します。あなたの「開発」及び「製造」のiniファイルが存在、次の内容の「wsgi.app」と呼ばれるファイルは、アプリケーションフォルダに を作成します。 :

[uwsgi] 
socket = 127.0.0.1:3053 
uid = daemon 
gid = daemon 

venv = /pathto/myenv 
project_dir = /pathto/myapp 
chdir = %(project_dir) 
master = true 
plugins = plugins/python/python 

check-static = %(project_dir) 
static-skip-ext = .py 
static-skip-ext = .pyc 
static-skip-ext = .inc 
static-skip-ext = .tpl 

pidfile2 = /var/run/uwsgi/myinfo.pid 
disable-logging = true 
processes = 8 
cheaper = 2 

enable-threads = true 
offload-threads = N 
py-autoreload = 1 
wsgi-file = /pathto/myapp/wsgi.py 

とnginxの的な設定は非常に簡単です:/パス/を/ usr /」と

server { 
listen [xxxx:xxxx:xxxx:xxx:xxxx:xxxx]:80; #for IPv6 
listen xxx.xxx.xxx.xxx:80; #for IPv4 

server_name myapp.domain.com; 

location/{ 
    try_files $uri @uwsgi; 
} 

location @uwsgi { 
     include uwsgi_params; 
     uwsgi_pass 127.0.0.1:3053; 
    } 
} 
  1. 再起動nginxのsbinに/ nginxの-sリロード」
  2. はuwsgiプロセスを開始
  3. - >に変更 "" CDの/usr/local/uwsgi-2.0.9 - > ./uwsgi -ini /var/www/myapp.conf
+0

この場合のNGINX部分は(オプション)のみです。しかし、この時点でアプリケーションはhttp://127.0.0.1:3053のリクエストを聞くことができるはずです – SmileMZ

関連する問題