Fedora20 + Nginx + uWSGI + Django环境的搭建

http://blog.csdn.net/celte/article/details/38305851

uwsgi的配置真不是一般的麻烦。。。

首先是Nginx的配置:

[python] view plain copy print ?
  1. server {  
  2.     listen       80;  
  3.     server_name  localhost 127.0.0.1;  
  4.   
  5.     #charset koi8-r;  
  6.   
  7.     #access_log  logs/host.access.log  main;  
  8.   
  9.     location / {  
  10.         uwsgi_pass 127.0.0.1:9000;  
  11.         include uwsgi_params;  
  12.         access_log off;  
  13.         root /home/celte/lovenote/my_django/my_django;#####注意此处是要指向settings.py,很容易写掉一个my_django  
  14.     }  
  15.     }  

然后就是uwsgi的配置(uwsgi.ini)
[python] view plain copy print ?
  1. [uwsgi]  
  2. socket=127.0.0.1:9000  
  3. listen=100  
  4. master=true  
  5. pidfile=/home/celte/lovenote/my_django/uwsgi.pid  
  6. processes=8  
  7. pythonpath=/home/celte/lovenote/my_django/  
  8. chdir=/home/celte/lovenote/my_django/my_django  
  9. module=my_django.wsgi:application  
  10. profiler=true  
  11. memory-report=true  
  12. enable-threads=true  
  13. logdate=true  
  14. limit-as=6048  
  15. daemonize=/home/celte/lovenote/my_django/log/django.log   
在uwsgi的最开始的配置过程中,日志中出现的问题的解决如下:

Listen queue size is greater than the system max net.core.somaxconn (128)

看日志很明显,是listen数目设置大了,将原来的listen由200改为100,为题解决。

unavailable modifier requested

这个情况需要首先安装分别用以下命令解决

[plain] view plain copy print ?
  1. sudo yum install uwsgi-plugin-python  
  2. sudo pip intsall uwsgi  

后来在我的电脑中比较奇葩,依然有这个报错,于是,一怒之下将uwsgi给卸载了,结果居然发现还有/usr/bin/uwsgi残留,不懂。于是继续删掉,重装uwsgi,发现给我安装在/usr/sbin/uwsgi,这就比较奇葩,而且在pip install uwsgi后,这个uwsgi重新回到了/usr/bin/uwsgi这个位置。于是开始猜测是uwsgi程序的问题,之前一直采用默认的shell下输入uwsgi来启动uwsgi,可能不行,于是改用/usr/sbin/uwsgi来启动,不过此时依旧不能解决,还需要在启动的后面加上plugin参数,综上,为解决这个问题必须采用如下方式启动uwsgi
[python] view plain copy print ?
  1. /usr/sbin/uwsgi -i /home/celte/lovenote/uwsgi.ini --plugin python  

于是问题解决。

no python application found, check your startup logs for errors

又是一个蛋疼的问题,找了好久,才发现是module参数配置错误,注意,这里的module的配置一定要定位到wsgi.py文件中的application


附uwsgi的进程查看命令以及全部关闭命令

[python] view plain copy print ?
  1. ps -ax | grep uwsgi  
  2.   
  3. killall -9 uwsgi  


记下备查。


你可能感兴趣的:(Fedora20 + Nginx + uWSGI + Django环境的搭建)