ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

1.Uwsgi基本安装配置

1).环境描述

    系统环境:ubuntu

    Python环境:python2.7

2).django及uwsgi安装

  1. pip install django
  2. pip install uwsgi

3).测试uwsgi

    编辑vi /home/test.py

# test.py

def application(env, start_response):

    start_response('200 OK', [('Content-Type','text/html')])

    #return [b"Hello World"] # python3

    return ["Hello World"] # python2

    启动命令uwsgi --http-socket :9000 --plugin python --wsgi-file test.py

    使用浏览器访问测试:http://127.0.0.1:9000/

    返回结果:

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

4).一些启动命令的报错及原因:

    使用uwsgi --http 127.0.0.1:9000 --wsgi-file test.py命令启动时,报:

    uwsgi: option '--http' is ambiguous;

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

    问题根源是没有这个uwsgi插件应该使用 --http-socket  参数

    使用命令:uwsgi --http-socket 127.0.0.1:9000 --wsgi-file test.py启动时报:

    uwsgi: unrecognized option '--wsgi-file'

    getopt_long() error

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

    问题原因:uwsgi不识别后面的wsgi  python文件,无法解析

    解决方式:在--wsgi-file 参数前加上--plugin python 参数,告诉uwsgi使用python插件解析后面的python文件

    uwsgi --http-socket :9000 --plugin python --wsgi-file test.py

2.不使用虚拟环境的情况下,Ubuntu创建django项目及nginx服务代理

    1).安装django

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

    2).创建一个django项目

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

    添加view.py文件

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

    修改urls.py文件:

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

    执行:python manage.py migrate

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

    运行项目:

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

    浏览器访问测试:

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

3).使用uwsgi命令启动django

     uwsgi --http-socket :8000 --plugin python --wsgi-file helloWord2/wsgi.py

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

4).Uwsgi使用配置文件启动django

    编辑uwsgi启动配置文件:vim /home/uwsgi.ini

[uwsgi]

http-socket = :8000

#the local unix socket file than commnuincate to Nginx

socket = 127.0.0.1:8001

# the base directory (full path)

#chdir = /root/workplace/helloworld

#home = /root/Env/first

# Django's wsgi file

plugin = python

wsgi-file = helloWord2/wsgi.py

# maximum number of worker processes

processes = 4

#thread numbers startched in each worker process

threads = 2

#monitor uwsgi status

stats = 127.0.0.1:9191

# clear environment on exit

#vacuum          = true

    启动运行: uwsgi /home/uswgi.ini

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

    ubuntu不在python虚拟环境下使用uwsgi启动django及nginx代理配置

    5).使用nginx动态代理uwsgi接口,请查看上一篇文章配置