首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用nginx部署web2py?

如何使用nginx部署web2py?
EN

Stack Overflow用户
提问于 2011-03-17 13:16:05
回答 2查看 7K关注 0票数 15

web2py是一个很棒的python框架,它有很棒的文档,包括几个部署recipes。然而,我错过了使用nginx (最好是使用uwsgi)进行部署的秘诀。网上有一些不完整的说明(比如here),但我找不到任何完整的、独立的指南。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-17 14:10:02

好的,仔细看看我上面链接的web2py电子邮件列表,我发现copmlete解决方案已经在那里了。我可以按照说明操作,感谢pbreit的精彩帖子,现在我在nginx+uwsgi上的部署工作非常出色(在空闲状态下只使用38MB内存)。

下面是我使用的部分(我只是将fabfile.py去掉,以便在命令行上使用它)注意:在哪里有‘put(’...‘我使用nano文本编辑器来创建和编辑文件

代码语言:javascript
复制
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 

nginx.conf

代码语言:javascript
复制
     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/;
         }
     }

 }

this Linode帖子的帮助下从web2py email list派生而来

票数 11
EN

Stack Overflow用户

发布于 2012-07-16 23:47:51

这里有一个解决方案:http://www.web2pyslices.com/slice/show/1495/updated-uwsgi-nginx-script-for-ubuntu-1110

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5335153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档