nginx uwsgi flask+uwsgi布署为什么找不到应用

第三方登录:CentOS 6.5中部署django+uwsgi+nginx+mysql项目
因为django 1.8至少需要python 2.7以上的版本,所以在部署django之前还需要确保python版本是否满足要求。上一篇文章介绍了 ,如果你的python已经是2.7可以略过此步骤。
(ch)[py27@localhost ~]$ pip install uwsgi
Collecting uwsgi
Downloading uwsgi-2.0.11.1.tar.gz (782kB)
100% |████████████████████████████████| 782kB 144kB/s
Building wheels for collected packages: uwsgi
Running setup.py bdist_wheel for uwsgi
Stored in directory: /home/py27/.cache/pip/wheels/65/00/6e/3a697c1646c71ccfabd1cb3c310c
Successfully built uwsgi
Installing collected packages: uwsgi
Successfully installed uwsgi-2.0.11.1
安装直接使用pip ,迁移是用的python2.7版本的pip。安装完成之后简单测试下uwsgi。
新建一个test.py文件:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return "Hello World"
输入“uwsgi --http :8001 --wsgi-file test.py”启动uwsgi,可以看到类似如下的内容。
(ch)[py27@localhost ~]$ uwsgi --http :8001 --wsgi-file test.py
*** Starting uWSGI 2.0.11.1 (64bit) on [Wed Sep 23 16:53:25 2015] ***
compiled with version: 4.4.7
(Red Hat 4.4.7-16) on 23 September :18
os: Linux-2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013
nodename: localhost.localdomain
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /home/py27
detected binary path: /home/py27/ch/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 1024
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uWSGI http bound on :8001 fd 4
spawned uWSGI http 1 (pid: 15856)
uwsgi socket 0 bound to TCP address 127.0.0.1:38968 (port auto-assigned) fd 3
Python version: 2.7.10 (default, Sep 23 :09) [GCC 4.4.7
(Red Hat 4.4.7-16)]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x203ccb0
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 72768 bytes (71 KB) for 1 cores
*** Operational MODE: single process ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x203ccb0 pid: 15855 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (and the only) (pid: 15855, cores: 1)
在浏览器打开ip:8001这个地址应该可以看到“hello world”页面。
安装django
使用pip安装django最简单。
(ch)[py27@localhost ~]$ pip install Django
Collecting Django
Downloading Django-1.8.4-py2.py3-none-any.whl (6.2MB)
100% |████████████████████████████████| 6.2MB 61kB/s
Installing collected packages: Django
Successfully installed Django-1.8.4
创建一个django项目测试。
(ch)[py27@localhost ~]$ django-admin.py startproject mysite
(ch)[py27@localhost ~]$ ll
drwxrwxr-x. 5 py27 py27 4096 Sep 23 16:41 ch
drwxrwxr-x. 3 py27 py27 4096 Sep 23 17:00 mysite
-rw-rw-r--. 1 py27 py27 118 Sep 23 16:49 test.py
(ch)[py27@localhost ~]$ cd mysite/
(ch)[py27@localhost mysite]$ python manage.py runserver 0.0.0.0:8001
Performing system checks...
System check identified no issues (0 silenced).
your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
September 23, 2015 - 09:00:44
Django version 1.8.4, using settings 'mysite.settings'
Starting development server at http://0.0.0.0:8001/
Quit the server with CONTROL-C.
[23/Sep/:56] "GET / HTTP/1.1" 200 1767
[23/Sep/:56] "GET /favicon.ico HTTP/1.1" 404 1942
浏览器看到django页面说明django安装成功。
uwsgi和django整合
django的runserver只在测试环境使用,正式环境不推荐使用这种方式。所以需要使用uwsgi调用django程序。django 1.4以上的版本在项目创建的时候会自动生产wsgi模块。
uwsgi支持很多种的配置方式,这里博主使用ini文件。
project = mysite
base = /home/py27
chdir = %(base)/%(project)
module = %(project).wsgi:application
;socket = 127.0.0.1:8001
;socket = /home/pyuser/var/%(project).sock
;chmod-socket = 664
http = 0.0.0.0:8001
master = true
processes = 3
vacuum = true
pidfile = /home/py27/uwsgi8001.pid
daemonize = /home/py27/uwsgi8001.log
连接时有socket和http两种方式,socket一般是提供给第三方调用,而http可以接受浏览器的http请求。上面配置文件是为了测试,接下来如果使用nginx时可以使用socket+端口或者socket+sock两种方式。
(ch)[py27@localhost ~]$ uwsgi --ini mysite.ini
[uWSGI] getting INI configuration from mysite.ini
(ch)[py27@localhost ~]$ tailf uwsgi8001.log
your mercy for graceful operations on workers is 60 seconds
mapped 291072 bytes (284 KB) for 3 cores
*** Operational MODE: preforking ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x14370a0 pid: 16050 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 16050)
spawned uWSGI worker 1 (pid: 16053, cores: 1)
spawned uWSGI worker 2 (pid: 16054, cores: 1)
spawned uWSGI worker 3 (pid: 16055, cores: 1)
spawned uWSGI http 1 (pid: 16056)
[pid: 16055|app: 0|req: 1/1] 192.168.140.1 () {36 vars in 619 bytes} [Wed Sep 23 09:13:44 2015] GET / =& generated 1767 bytes in 13 msecs (HTTP/1.1 200) 2 headers in 73 bytes (1 switches on core 0)
出现这个界面且浏览器打开正常说明django和uwsgi整合成功。有关uwsgi的详细配置参考官方文档。
安装完nginx后增加类似如下配置文件,重新加载nginx即可。
listen 80;
server_name manage.hostunion.
location ~ ^/static/admin(/|$) {
root /home/py27/ch/lib/python2.7/site-packages/django/contrib/
location ~ ^/static(/|$) {
root /home/py27/
location / {
include uwsgi_
#uwsgi_pass 127.0.0.1:8001;
uwsgi_pass unix:/home/py27/var/mysite.
access_log /home/wwwlogs/manage.hostunion.net.
不出意外,django项目的部署就完成了。
参考连接:
/questions//uwsgi-invalid-request-block-size
http://www.sijitao.net/2050.html
Trackbacks (0)
还没有Trackbacks
: 不错不错。谢谢博主分享。
: 看不懂。。。。。。。。
: 谢谢博主分享
: 谢谢博主分享。看见代码就头疼,
: 感觉好难的说。
: access 数据库还是。。
: 得慢慢磨了。。
: 哇哦,好专业的博客。nginx+uwsgi布署为什么找不到应用_百度知道
nginx+uwsgi布署为什么找不到应用
我有更好的答案
0.1; --wsgi-file /hello.0,请参考这个例子
uwsgi -s 127;var&#47:9000 --processes 2 --enable-threads —-pythonpath /var/www&#47uwsgi配置错了;www&#47
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 nginx python uwsgi 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信