2011-03-17 6 views
15

web2pyはいくつかのデプロイメントを含む偉大な文書を持っているすばらしいPythonフレームワークですrecipesしかし、私が見逃しているのは、nginx(uwsgiが望ましい)を使って展開するためのレシピです。ウェブ上に不完全なメモがいくつかあります(hereなど)が、完全なスタンドアロンガイドは見つかりませんでした。だから、私はあなたの助けに感謝します。nginxを使ってweb2pyをデバイドする方法は?

答えて

12

私が上にリンクしているweb2pyの電子メールリストを見てみると、私はcopmleteソリューションが既に存在していることを理解しました。私は指示に従うことができ、pbreitの素晴らしい投稿に感謝します。今では、nginx + uwsgiを使って、私の展開は魅力(アイドル状態で38MBのRAMのみを使用しています)のように動作します。

ここに私が使った部分があります(コマンドラインで使用するためにfabfile.pyを削除しました) 注: 'put(' .... 'があります。編集ファイル

apt-get -y install build-essential psmisc python-dev libxml2 libxml2-dev python-setuptools 
cd /opt; 
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz 
tar -zxvf uwsgi* 
mv /opt/uwsgi*/ /opt/uwsgi/ 
cd /opt/uwsgi/; python setup.py install 
chown -R www-data:www-data /opt/uwsgi 
touch /var/log/uwsgi.log 
chown www-data /var/log/uwsgi.log 
apt-get -y install libpcre3-dev build-essential libssl-dev 
cd /opt; wget http://nginx.org/download/nginx-0.8.54.tar.gz 
cd /opt; tar -zxvf nginx* 
cd /opt/nginx*/; ./configure --prefix=/opt/nginx --user=nginx --group=nginx --with-http_ssl_module 
cd /opt/nginx*/; make 
cd /opt/nginx*/; make install 
adduser --system --no-create-home --disabled-login --disabled-password --group nginx 
cp /opt/uwsgi*/nginx/uwsgi_params /opt/nginx/conf/uwsgi_params 

wget https://library.linode.com/web-servers/nginx/installation/reference/init-deb.sh 
mv init-deb.sh /etc/init.d/nginx 

chmod +x /etc/init.d/nginx 
/usr/sbin/update-rc.d -f nginx defaults 
/etc/init.d/nginx start 

cd /opt/ 
wget https://library.linode.com/web-servers/nginx/python-uwsgi/reference/init-deb.sh 
mv /opt/init-deb.sh /etc/init.d/uwsgi 
chmod +x /etc/init.d/uwsgi 

echo 'PYTHONPATH=/var/web2py/ MODULE=wsgihandler' >> /etc/default/uwsgi 
/usr/sbin/update-rc.d -f uwsgi defaults 
/etc/init.d/uwsgi start 


rm /opt/nginx/conf/nginx.conf 
# modify nginx.conf below and save it as /opt/nginx/conf/nginx.conf 
cd /opt/nginx/conf; openssl genrsa -out server.key 1024 
cd /opt/nginx/conf; openssl req -batch -new -key server.key -out server.csr 
cd /opt/nginx/conf; 
openssl x509 -req -days 1780 -in server.csr -signkey server.key -out server.crt 

/etc/init.d/nginx restart 

web2py email list 0123由来

 user www-data; 
    worker_processes 4; 

    events { 
     worker_connections 1024; 

    } 

    http { 
     include  mime.types; 
     default_type application/octet-stream; 
     keepalive_timeout 2; 
     sendfile  on; 
     #tcp_nopush  on; 
     tcp_nodelay  on; 
     gzip on; 
     server { 
      listen  80; 
      server_name example.com www.example.com; 

      location/{ 
       uwsgi_pass 127.0.0.1:9001; 
       include uwsgi_params; 
      } 

      location /static { 
       root /var/web2py/applications/init/; 
      } 
     } 

    # HTTPS server 
    server { 
     listen  443; 
     server_name www.example.com example.com; 
     ssl     on; 
     ssl_certificate  /opt/nginx/conf/server.crt; 
     ssl_certificate_key /opt/nginx/conf/server.key; 

     location/{ 
      uwsgi_pass 127.0.0.1:9001; 
      include uwsgi_params; 
      uwsgi_param  UWSGI_SCHEME $scheme; 
     } 


    location /static { 
      root /var/web2py/applications/init/; 
     } 
    } 

} 

nginx.conf this Linodeのポストからの助け

+1

心は...は、1つのinitアプリを想定しているようです。 – Massimo

+0

wget -O init-deb.sh http://library.linode.com/assets/661-init-deb.sh – Unitech

+0

@massimo:複数のアプリケーションをサポートするためには何を変更する必要がありますか? – hoju

関連する問題