centos下用uwsgi + nginx + mysql部署django项目

centos上安装python、nginx以及uwsgi各种相关依赖就不再赘述,详情可见CentOS6.8编译安装Python3.6 + pip + Nginx以及阿里云新手Flask + nginx + uwsgi + ubuntu的完整项目部署教程

测试uwsgi

vim test.py

# test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"] # python3 注意不要丢掉 ‘b’
    #return ["Hello World"] # python2

# uwsgi测试命令
uwsgi --http :8001 --wsgi-file test.py
# 此时访问 ip地址:8001/ 就可以看到Hello World了
# 要注意的是,return语句后边的'b'一定要加上,否则网页无输出,因为在python3中,字符默认是Unicode,所以必须进行编码

Django安装及测试

pip install django  # pip安装django
django-admin.py startproject myproject  # 创建django项目
cd myproject  # 进入项目文件夹
python manage.py runserver 0.0.0.0:8003  # 运行django项目
# 打开浏览器访问 ip地址:8003, 就可以看到Django的欢迎界面了

这里我修改了django的默认数据库(sqlite3),改为了mysql,具体是在settings.py中修改关于数据库配置的代码,如下:
ALLOWED_HOSTS = ['*'] # 28行

DATABASES = { # 77行
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '你的数据库名',
'USER':'你的mysql账户',
'PASSWORD':'你的mysql密码',
'HOST':'localhost',
'PORT':'3306',
}
}

centos下用uwsgi + nginx + mysql部署django项目_第1张图片

连接uwsgi和Django

执行如下命令:

uwsgi --http :8004 --chdir /usr/local/nginx/html/django/myproject --module myproject.wsgi 

# 注意:chdir /usr/local/nginx/html/django/myproject 这是你项目具体所在的路径(绝对路径)

成功之后,浏览器访问 ip地址:8004 即可看到与上图同样的界django欢迎界面,这就说明连接成功了。

很多教程上说要建立django_wsgi,现在的版本已经不需要了,直接myproject.wsgi即可。

nginx的安装和测试

在文章开头的两个链接里有,安装步骤也很清晰,跟着做就可以了,为避免重复,这里就不再写了。

连接uwsgi和nginx

本着最小改动的原则,修改nginx.conf文件如下:

vim /usr/local/nginx/conf/nginx.conf
# 不修改nginx.conf的原本内容,翻到文件最底部,添加下一行代码
include vhost/*.conf;

# 然后回到conf目录下,新建一个vhost目录,在vhost中新建一个myproject.conf文件,内容如下:
    server {
        listen      8093;
        server_name idandan.vip; # substitute your machine's IP address or FQDN
        charset     utf-8;

        # 静态文件所在位置,可以自己定义
        location /static {
            root /usr/local/nginx/html/django/myprojec/; 
        }

        location / {
            root        /usr/local/nginx/html/django/myproject;
            uwsgi_pass  127.0.0.1:8010;  # 端口跟socket端口要保持一致
            include     uwsgi_params; # the uwsgi_params file you installed
        }
    }

连接uwsgi、Django与Nginx

# 在项目文件夹下添加uwsgi.ini文件,方便后台启动,不用每次都输入一堆命令,具体代码如下:
[uwsgi]
socket = :8010  # 端口号和myproject.conf文件中的uwsgi_pass参数中的端口保持一致
chdir           = /usr/local/nginx/html/django/myproject
wsgi-file=myproject/wsgi.py
module          = myproject.wsgi
master          = true
processes       = 4
vacuum          = true
pidfile        =pid.uwsgi
daemonize    = UWSGI.log

启动uwsgi.ini

uwsgi --ini uwsgi.ini

这时候访问浏览器 ip地址:8093就可以看到效果了。

你可能感兴趣的:(Python:Django学习)