您的位置:首页 > 数据库 > SQL

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

2018-03-12 09:27 1101 查看
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',

}

}




连接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
就可以看到效果了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息