nginx+uwsgi+Django
本环境在阿里云Centos7.2上发布
1. 首先参考上一篇文章
2. 参考第二篇文章安装mysql
3. 跟新系统环境
运用命令 yum install update
4. 在根目录下创建文件夹
- 先
cd
到根目录 -
mkdir sities
创建一个文件夹 -
mkdir blog
在创建一个文件夹来Django的项目 -
mkdir script
创建一个文件夹装uwsgi以及其他配置的文件 - 看见目录应该是
~/sities/blog/script/
- 运行命令安装git
yum install git
安装过程中按Y就好
5.下载项目
首先我们要确保自己在blog的目录下,(就是跟script同级目录)
然后git我们的项目下来,git clone +自己的仓库地址
6.配置
先新建虚拟环境 运行
mkvirtualenv env3
-
如过没下载virtualenvwrapper的话可以通过以下命令:
pip install virtualenv
然后virtualenv env3
在source env3/bin/activate
-
我们进入到项目的主目录,就是有manage.py的文件下
执行
pip install -r requirements.txt
安装所需要的文件,如果没有此文件,先在本地执行pip freeze > requirements.txt
在上传到项目跟manage.py的同级下在执行-
迁移数据库和生成数据库
-
python manage.py createsuperuser
创建超级管理员 -
python manage.py runserver 0:8000
启动项目,看看有没有报错 -
访问ip+8000端口
7.安装uwsgi和配置uwsgi
安装uwsgi
pip install uwsgi
-
uwsgi --http :8000 --module blogproject.wsgi --static-map=/static=stati
就可以启动uwsgi的,不过uwsgi处理的大多数是动态请求,而nginx处理的是静态文件,所以大多数使用配置文件来启动,启动命令后通过ip+端口一样能访问到 -
在script下创建一个新的uwsgi.ini 文件,可以用vi,vim编辑
#如果你的工程名字跟我不一样,把下面的blogproject改为你自己的名字 [uwsgi] #项目目录,可以用pwd查看,以自己的为准 chdir=~/sities/blog/blogproject/ #启动uwsgi的用户名和用户组 uid=root gid=root #指定项目的application module=blogproject.wsgi:application #指定sock的文件路径 socket=~/sities/blog/script/uwsgi.sock #启动主进程 master=true #进程个数 workers=5 pidfile=~/sities/blog/script/uwsgi.pid #自动移除unix Socket和pid文件,当服务器停止时侯 vacuum=true #序列化接受的内容,如果可能的话 thunder-lock=true #启动线程 enable-threads=true 设置自动中断时间 harakiri = 30 #设置日志目录 daemonize=~/sities/blog/script/uwsgi.log #结束
-
uwsgi 命令
uwsgi --ini uwsgi.ini 启动 uwsgi --stop uwsgi.pid 停止 ps -ef | grep -i uwsgi 检出uwgi有没有启动 #操作这些需要在script中,有uwgi.ini和uwsgi.pid文件才可以执行
8.安装配置nginx
安装nginx
yum -y install nginx
进入nginx的配置目录
cd /etc/nginx/conf.d/
因为在nginx.conf下有一句话include /etc/nginx/conf.d/*.conf
所以可以在这里编写配置文件-
编写配置文件
server { listen 80; # 监听哪个端口 server_name 45.32.71.174 ; # 你的ip地址 或者是域名,如果是域名需要解析dns,这个自行搞定 access_log /var/log/nginx/access.log main; # 日志记录 error_log /var/log/nginx/error.log; # nginx错误日志,可自行设置,但必须保证提前建立好该目录和文件 charset utf-8; gzip on; gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd- php application/json text/json image/jpeg image/gif image/png application/octet-stream; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; # 指定项目路径uwsgi location / { include uwsgi_params; uwsgi_connect_timeout 30; uwsgi_pass unix:/opt/blog/script/uwsgi.sock; # 这里需要改为你的目录(如果你和我的目录一致不需要改动) } # 指定静态文件路径 location /static/ { alias /opt/blog/blogproject/static/; # 这里需要改为你的目录(如果你和我的目录一致不需要改动) index index.html index.htm; } }
- 检查配置文件
nginx -t
尾部出现了successful就表市成功,不成功看报错信息就好
9.nginx+uwsgi运行
service nginx stop --停止nginx服务
uwsgi --stop uwsgi.pid --停止uwsgi服务
uwsgi --ini uwsgi.ini --开启uwsgi服务
service nginx start --开启nginx服务
现在就可以访问你的网站了
10.如果进去后台发现样式有问题可以在配置
删除项目中的satic文件
-
在项目的settings.py中加入以下的话
STATIC_ROOT = os.path.join(BASE_DIR,'static') 看下自己的settings里面有没有STATICFILES_DIRS,有需要先注释掉
-
在项目下路径执行
python manage.py collectstatic --noinput
看到我们的项目多了static,然后重启nginx服务,就可以了,如果还有少的可以使用Filezilla这个软件把少了的静态拉过去,在重启