nginx+uwsgi+django组网
/usr/local/python-2.713/bin/django-admin
1,安装
pip2.7 install django
pip2.7 install uwsgi
2.创建项目
/usr/local/python-2.713/bin/django-admin startproject project_test
注:解决内网浏览器不能允许访问
vim settings.py
ALLOWED_HOSTS = ['*'] #允许所有来源ip访问
注:
解决UnicodeDecodeError: 'ascii' codec can't decode byte 0xcf in position 7: ordinal not in range(128)
设置解决项目所有编码问题
在site-packages添加 sitecustomize.py文件
cd /usr/local/python-2.713/lib/python2.7/site-packages
vim sitecustomize.py
import sys
sys.setdefaultencoding('utf-8')
3.启动测试web服务
cd /apps/***/***/django_tests/project_test
python2.7 manage.py runserver 172.19.116.66:8001
4.内网浏览器访问测试web
http://172.19.116.66:8001/
5.uwsgi调试
a.切换到django项目目录,与manage.py文件同目录
cd /apps/***/***/django_tests/project_test
b.创建uwsgi模块文件
vim test_uwsgi.py
#!/usr/bin/python2.7/
#
#ecoding:utf-8
import os
import sys
reload(sys)
sys.setdefaultencoding('utf8')
from django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_test.settings") #读取项目settings文件
application = get_wsgi_application()
c.启动uwsgi进程
命令行启动:
/usr/local/python-2.713/bin/uwsgi --http 172.19.116.66:8000 --chdir /apps/***/***/django_tests/project_test --module test_uwsgi --chmod-socket=666
配置文件启动:
创建配置文件test_uwsgi.ini
cd /apps/***/***/django_tests/project_test/
vim test_uwsgi.ini
[uwsgi]
#监听IP和端口
http = 172.19.116.66:8000
#项目根目录
chdir = /apps/***/***/django_tests/project_test
#uwsgi文件,注意不用把后缀.py加上去
module = test_uwsgi
#开启4个进程(按需更改)
processes = 1
#每个进程开启4个线程
threads = 1
#支持线程启动
enable-threads = True
#后台启动,并把日志记录到指定文件
daemonize = /apps/***/***/django_tests/project_test/logs/uwsgi.log
buffer-size = 21573
#开启状态服务ip端口
stats = 172.19.116.66:9000
#pid路径
pidfile = /apps/***/***/django_tests/project_test/uwsgi.pid
配置文件启动方式:
/usr/local/python-2.713/bin/uwsgi --ini /apps/***/***/django_tests/project_test/test_uwsgi.ini
停止uwsgi方式:
/usr/local/python-2.713/bin/uwsgi --stop /apps/***/***/django_tests/project_test/uwsgi.pid
6.nginx 的安装与配置
./configure --prefix=/apps/***/***/nginx/usr/local/nginx
make
make install
vim nginx.conf
user mgsp;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include test.conf; #添加自定义配置文件
}
vim test.conf
server{
listen 8002 ; #监听80端口
access_log logs/test_access.log; #日志文件位置
error_log logs/test_error.log;
location / { #访问/时
include uwsgi_params; #加载uwsgi模块
http://172.19.116.66:8000; #将连接转到该IP,改地址为uwsgi服务ip端口
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location /static/ {
alias /apps/***/***/django_tests/project_test/static/; #访问/static时直接访问
}
}
7.登录django后台
http://172.19.116.66:8002/admin
访问成功,说明组网搭建完成
8.创建数据库
python2.7 manage.py startapp TestModel
cd /apps/***/***/django_tests/project_test/TestModel
vim models.py
添加:
class Test(models.Model): #表名Test
name = models.CharField(max_length=20) #字段name,长度20
vim settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'TestModel',
]
python2.7 manage.py migrate # 创建表结构
python2.7 manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更
python2.7 manage.py migrate TestModel # 创建表结构