部署Django项目
来源:互联网 发布:淘宝便利店入口 编辑:程序博客网 时间:2024/06/02 20:39
最近做了个python web项目,用的是Django框架,搭配的软件都有uWSGI + Nginx + Django+supervisor+virtualenv
一、用virtualenv来配置python的虚拟环境。
tips:为什么要用虚拟环境?
首先python有很多个发行版,我这个项目用的是python3.4,但我系统上有2.7,3.4,3.5这三个版本,我为了隔绝与系统环境的关联,而且开了虚拟环境之后,搜所有的python指令都默认会指向虚拟环境的python版本,所以说,一个项目建一个虚拟环境,在导出需求包的时候也非常方便。
关于virtualenv的搭建与安装使用:http://www.cnblogs.com/technologylife/p/6635631.html
二、测试运行Django项目
找到你的manage.py文件,这个是在你创建Django项目时系统自动创建的一个文件。
然后运行:
python manage.py runserver 0.0.0.0:8000
打开你的浏览器,网址输ip:8000。如果运行正常,说明这个项目的环境配置已经完成了。
三、安装配置nginx
apt-get install nginx #安装
/etc/init.d/nginx start #启动/etc/init.d/nginx stop #停止/etc/init.d/nginx restart #重启配置nginx:
nginx的默认端口是80端口,如果你的80端口被占用了,你可以修改默认端口,在 /etc/nginx/sites-enabled/*,或者重新写配置文件
重新写配置文件:
在 /etc/nginx/conf.d/目录下创建 .conf 文件,nginx会在启动时自动读取这个文件,重写之后记得在/etc/nginx/nginx.conf这个文件里把include /etc/nginx/sites-enabled/*这句话给注释掉
给一个配置文件的例子
upstream django { # 有两种选择,根据 uWSGI 中配置而定 # server 127.0.0.1:18001; server unix:///tmp/mysite.sock;}server { listen 18090; charset utf-8; # 认证日志 access_log /usr/local/var/log/nginx/exam_access_log; # 错误日志 error_log /usr/local/var/log/nginx/exam_error_log; location /static { # 静态文件链接地址 alias /your/web/path/static/; } location / { include uwsgi_params; uwsgi_pass django; }}
这样的话就可以用浏览器访问静态文件,listen是端口号。
四、安装配置uwsgi
sudo apt-get install nginx uwsgi uwsgi-plugin-python
可以使用 uwsgi –version 查看 uwsgi 版本,如果版本过低则
$ pip install -U uwsgi$ cd /usr/bin$ mv uwsgi uwsgi-old$ ln -s /usr/local/bin/uwsgi uwsgi为了测试可以先生成一个测试文件 test.py
# test.pydef application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) #return ["Hello World"] # python2 return [b"Hello World"] # python3然后测试一下,端口自定
uwsgi --http :8000 --wsgi-file test.py
用浏览器打开后能够看到“hello world”则说明正常运行
然后写配置文件,包括程序运行的命令,运行环境,线程数等
给一个配置文件的例子mysite.ini
[uwsgi]# 项目目录chdir=/Users/hourong/PycharmProjects/examination# 从文件夹中找 /your/project/wsgi.py 中的 applicationmodule=examination.wsgi:application# 设置环境env=DJANGO_SETTINGS_MODULE=examination.settings# pid 文件地址pidfile=/tmp/project-master.pid# 开放的端口( http, tcp, unix socket )# http=127.0.0.1:49152# socket=127.0.0.1:18001socket=/tmp/mysite.sock# unix socket 需要指定文件的chmod-socket=664# 用于添加 virtualenv 的地址home=/Users/hourong/venv/examnation# 当前进程数processes=1# 允许多线程enable-threads=True
运行程序的时候只要执行
uwsgi --ini mysite.ini
五、程序运行起来如果正常,那么恭喜你,所有配置就都完成了。当然这个服务器可能并不稳定,有可能会挂掉,为了防止这种风险,我们用supervisor来守护进程,万一这个进程挂掉了,supervisor会再把它拉起来。具体配置见http://blog.csdn.net/xyang81/article/details/51555473
以后就只用监控supervisor的运行状态就好了。
- Apache部署Django项目
- Apache部署django项目
- Apache部署django项目
- IIS8部署Django项目
- 快速部署Django项目
- Apache部署django项目
- Apache部署django项目
- 部署Django项目
- Ubuntu部署Django项目
- Django|Tornado项目部署
- 部署django项目
- Django项目部署 Gunicom + Django + nginx + mysql
- Django项目部署 Django + nginx + tornado
- 部署django项目到apache
- django项目部署到heroku
- Django Web项目部署参考
- Nginx+fastcgi 部署Django项目
- django项目部署 - 配置Memcached
- [Flink]Flink1.3 Stream指南四 窗口函数
- java基础——线程通信
- deep learning学习笔记---MemN2N
- 斑马斑马
- 立个flag
- 部署Django项目
- idea导入struts2架包
- 自定义View练习2
- input type=radio ios点击后黑色背景的解决
- XRecyclerView 多条目加载
- ObjectARX反应器概述
- 提升自旋锁spinlock的性能-pause指令
- Struts2学习(二)【Struts2访问流程】
- css 文字超出部分使用...代替