在Linux系统上怎么通过uWSGI配置Nginx+Python环境

  1.安装ubuntu有uwsgi的ppa:

  ?


1

2

3

add-apt-repository ppa:stevecrozz/ppa

apt-get update

apt-get install uwsgi

  2. 用uwsgi代替mod_wsgi

  Nginx 的整体配置这里不说了,假设已经明白 Nginx的基本配置,那么uwsgi就类似这么配置:

  ?


1

2

3

4

location / {

include uwsgi_params

uwsgi_pass 127.0.0.1:9090

}

  再比如django就是:

  ?


1

2

3

.......

from django.core.handlers.wsgi import WSGIHandler

application = WSGIHandler()

  然后运行uwsgi监听9090,其中-w后跟模块名,也就是刚才配置的myapp

  ?


1

uwsgi -s :9090 -w myapp

  运行网站发现已经部署完成了。

  3.uwsgi的参数

  以上是单个project的最简单化部署,uwsgi还是有很多令人称赞的功能的,例如:

  并发4个线程:

  ?


1

uwsgi -s :9090 -w myapp -p 4

  主控制线程+4个线程:

  ?


1

uwsgi -s :9090 -w myapp -M -p 4

  执行超过30秒的client直接放弃:

  ?


1

uwsgi -s :9090 -w myapp -M -p 4 -t 30

  限制内存空间128M:

  ?


1

uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128

  服务超过10000个req自动respawn:

  ?


1

uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000

  后台运行等:

  ?


1

uwsgi -s :9090 -w myapp -M -p 4 -t 30 --limit-as 128 -R 10000 -d uwsgi.log

  4.为uwsgi配置多个站点

  为了让多个站点共享一个uwsgi服务,必须把uwsgi运行成虚拟站点:去掉“-w myapp”加上”–vhost”:

  ?


1

uwsgi -s :9090 -M -p 4 -t 30 --limit-as 128 -R 10000 -d uwsgi.log --vhost

  然后必须配置virtualenv,virtualenv是Python的一个很有用的虚拟环境工具,这样安装:

  ?


1

2

apt-get install Python-setuptools

easy_install virtualenv

  然后设置一个/多个app基准环境:

  ?


1

virtualenv /var/www/myenv

  应用环境,在此环境下安装的软件仅在此环境下有效:

  ?


1

2

3

4

source /var/www/myenv/bin/activate

pip install django

pip install mako

...

  最后配置nginx,注意每个站点必须单独占用一个server,同一server不同location定向到不同的应用不知为何总是失败,估计也 算是一个bug。

  ?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

server {

listen 80;

server_name app1.mydomain.com;

location / {

include uwsgi_params;

uwsgi_pass 127.0.0.1:9090;

uwsgi_param UWSGI_PYHOME /var/www/myenv;

uwsgi_param UWSGI_SCRIPT myapp1;

uwsgi_param UWSGI_CHDIR /var/www/myappdir1;

}

}

server {

listen 80;

server_name app2.mydomain.com;

location / {

include uwsgi_params;

uwsgi_pass 127.0.0.1:9090;

uwsgi_param UWSGI_PYHOME /var/www/myenv;

uwsgi_param UWSGI_SCRIPT myapp2;

uwsgi_param UWSGI_CHDIR /var/www/myappdir2;

}

}

  这样,重启nginx服务,两个站点就可以共用一个uwsgi服务了。

(0)

相关推荐

  • Linux系统上Samba服务器的配置教程

    第一步: 进入 /etc/samba 目录,备份下smb.conf,然后删除这个文件,自己重新建立一个,输入如下内容 代码如下: [global] workgroup = WORKGROUP netb ...

  • Linux系统上安装MRTG来监控网络流量

    Multi Router Traffic Grapher------MRTG是一个监控网络链路流量负载的工具软件,通过snmp协议得到设备的流量信息,并将流量负载以包含PNG格式的图形的HTML 文档 ...

  • 如何进行检查Linux系统上的网络连接

    在Linux系统上有许多可用于查看的网络设置和连接命令,使用快捷的命令来进行配置系统上的网络连接,方便使用者来查看网络配置和连接. 操作方法 01 首先使用ifquery命令,窗口显示一个网络接口列表 ...

  • 在Linux系统上配置SNMP的方法

    在Debian或Ubuntu上配置SNMP 要在基于Debian的系统上安装SNMP代理(snmpd),请运行以下命令: 代码如下: root@server:~# apt-get install sn ...

  • 在Linux系统上安装配置DNS服务器的教程

    简介 DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主机的域名和 ...

  • Linux系统安全:系统优化及安全配置详细介绍

    作为一个系统管理员,下面我们聊一下基于服务器应用的Linux,由于个人电脑上使用Linux也许不是像服务器上一样,优先追求安全和稳定,因此个人电脑使用的朋友只做个参考吧。 系统优化 说起优化,其实最好 ...

  • 嵌入式Linux系统OpenWRT路由的基本配置

    OpenWRT是一个嵌入式Linux系统,想要了解嵌入式Linux系统的朋友有福了,今天小编要给大家介绍下OpenWRT路由的基本配置,一起来学习下吧。 chnroutes 路由表 这个路由表集中了所 ...

  • Linux系统vps服务器入门级安全配置指南

    虽然说Linux 系统比Windows安全性要高一些,不过一些简单的安全配置也是必要的。 互联网上有很多工具采用字典方式扫描套取你的管理员密码,我们可以创造一些麻烦出来,增加被破译的可能性。一起看学习 ...

  • 在Linux系统上安装Wine的教程

    Wine,一个在Linux平台上非常受欢迎并且强大的开源应用,有了它,我们可以在Linux平台上完美运行Windows应用与游戏. WineHQ团队,近期宣布了一个新的开发版本Wine1.7.29.这 ...