uwsgi指定python路径_uWsgi服务器(2)--安装配置
uWsgi做为一款应用服务器,其安装配置是非常简单的。
一、安装
- 虚拟环境安装
pip install uwsgi- 源码安装
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd uwsgi-latest
make- 测试
创建一个wsgi应用:
#example.py
def application(env, start_response):start_response('200 OK', [('Content-Type','text/html')])return [b"Hello World"] 如您所见,它由单个Python函数组成。之所以称为“应用程序”,是因为它可以uWSGI加载器加载。
接下来我们启动 uWSGI 来运行一个 HTTP 服务器,将程序部署在HTTP端口 9000 上:
# 在虚拟环境中启动uwsgi
uwsgi --http 127.0.0.1:9000 --wsgi-file example.py打开浏览器,输入:http://127.0.0.1:9000

默认情况下,uWSGI 启动一个单一的进程和一个单一的线程。
你可以用 --processes 选项添加更多的进程,或者使用 --threads 选项添加更多的线程 ,也可以两者同时使用。
uwsgi --http 127.0.0.1:9090 --wsgi-file foobar.py --master --processes 4 --threads 2以上命令将会生成 4 个进程, 每个进程有 2 个线程。
二、配置
uWSGI支持多种与Web服务器集成的方法。它也能够自己处理HTTP请求。但在实际的生产环境中,一般会配合nginx或apache使用,咱们以nginx为例,来看一下如何配置。
1. nginx的配置
通常,您只需要包含uwsgi_params文件(包含在nginx发行版中),并使用uwsgi_pass指令设置TCP套接字的地址即可
server {# 监听端口listen 80;# 可以是ip地址或域名server_name www.blog.com;# 动态请求nginx转发给uwsgilocation / {# 转发端口必须和uwsgi配置文件中socket端口一致uwsgi_pass 127.0.0.1:8000; include uwsgi_params; }# 静态资源所在位置,nginx自己处理location /static {alias /var/www/online/static/;}
}nginx安装完毕后,自带一个uwsgi_params文件:

uwsgi_params文件内容:
uwsgi_param QUERY_STRING $query_string;
uwsgi_param REQUEST_METHOD $request_method;
uwsgi_param CONTENT_TYPE $content_type;
uwsgi_param CONTENT_LENGTH $content_length;uwsgi_param REQUEST_URI $request_uri;
uwsgi_param PATH_INFO $document_uri;
uwsgi_param DOCUMENT_ROOT $document_root;
uwsgi_param SERVER_PROTOCOL $server_protocol;
uwsgi_param REQUEST_SCHEME $scheme;
uwsgi_param HTTPS $https if_not_empty;uwsgi_param REMOTE_ADDR $remote_addr;
uwsgi_param REMOTE_PORT $remote_port;
uwsgi_param SERVER_PORT $server_port;
uwsgi_param SERVER_NAME $server_name;这个文件中包含了转发请求时要携带的内容:查询字符串、请求方法、内容类型等
修改了配置文件,记得重启nginx服务。
2. uWsgi服务器配置
和nginx配合使用,uwsgi是socket套接字的方式启动,而不是以http服务器启动。启动方式有两种:命令行和配置文件。
- 命令行方式启动
uwsgi --socket 127.0.0.1:9000 --wsgi-file example.py --master --processes 4 --threads 2 但这种方式写起来复杂,易出错,不能重用,所以一般使用这种方式,只是用于调试,一旦调试正确,我们就可以使用配置文件进行配置,命令行的每一个参数对应配置文件的一行。
- 配置文件
uwsgi支持以以下几种文件方式加载配置:
uwsgi --ini http://uwsgi.it/configs/myapp.ini # HTTP
uwsgi --xml - # standard input
uwsgi --yaml fd://0 # file descriptor
uwsgi --json 'exec://nc 192.168.11.2:33000' # arbitrary executabl3.INI文件
.INI文件是许多应用程序使用的标准事实上的配置格式。它由[section]s和key=value对组成。
[uwsgi]
socket = 127.0.0.1:9000
wsgi-file = example.py
master = true
threads = 2[app1]
.....默认情况下,uWSGI使用该[uwsgi]部分,但是您可以在使用语法加载INI文件时指定另一个部分名称filename:section。
uwsgi --ini uconfig.ini:app1 注意:
- 配置文件中空格无所谓,几个都行
- 以分号或#号开头的是注释
- 启动使用命令: uwsgi --ini uconfig.ini,等价于 uwsgi uconfig.ini
4.XML文件
根节点应为和选项值文本节点。
127.0.0.1:9000 example.py 3
一个xml文件中可以朵儿
# 两种方式等价
uwsgi myconf.xml
uwsgi --xml myconf.xml5.JSON文件
JSON文件应表示一个具有一对键值对的对象,键为“ uwsgi”,值为配置变量的对象。支持内置JSON列表,布尔值和数字类型。
{"uwsgi": {"socket": ["127.0.0.1:8000"],"master": true,"workers": 3},"app1":{....}
}加载方式:
uwsgi --json myconf.json:app1 # 根据节的名字加载6.常见参数
表1中列出了常用配置参数

uwsgi也可以加载很多插件,其中在python开发中,用得到是python插件,参数:

下一节中,我们会说一下在Django和Flask项目中如何配置。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
