部署django项目
来源:互联网 发布:程序员升职路线 编辑:程序博客网 时间:2024/06/16 03:55
说明:本文所使用的环境为CentOS 6+Python3.5+Django1.11安装Django、Nginx和uWSGI1.安装python3,这里可以看我另外一篇文章http://blog.csdn.net/jj546630576/article/details/78521443; 2.安装python-devel yum install python-devel 3.安装uwsgi pip install uwsgi(如果查找不到pip,就用命令查询一下whereis pip,如果查找到pip3.x,就做一个软连接到/usr/bin/pip就好了)测试uwsgi是否能正常工作1.新建一个index.py;# index.pydef application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return "Hello World"2.uwsgi --http :8000 --wsgi-file index.py 浏览器访问8000端口看是否有hello world输出 注意:确保8000端口能被外网访问此时,访问http://192.168.177.234:8000/,看到index.py中内容说明成功安装Django,去官网下载源码包Django,然后手动安装,python setup.py install测试Django能否正常工作$ cd /var/www/ $ django-admin startproject mysite $ cd mysite $ make static //创建一个静态资源文件夹$ make media //创建上传文件夹$ python manage.py runserver 0.0.0.0:8000 【注】:我这里报错了:No module named _sqlite3 解决: 1,首先安装 sqlite-devel yum install sqlite-devel 2,重新编译安装Python ./configure make make install 浏览器访问8000端口看是否有hello world输出测试uwsgi是否能和django集成,进入django项目根目录mysite:uwsgi --http 192.168.177.234:8000 --file mysite/wsgi.py --static-map=/static=static在浏览器中访问8000端口,看能否正常访问django网站。在django项目同级目录创建script目录,用于存放配置脚本等等进入/script目录,创建一个uwsgi.ini文件,内容如下: 1 [uwsgi] 2 # 项目目录 3 chdir=/home/www/python_project/mysite 4 # 指定项目的application 5 module=mysite.wsgi:application 6 # 指定sock的文件路径 7 socket=/home/www/python_project/script/uwsgi.sock 8 # 进程个数 9 workers=5 10 pidfile=/home/www/python_project/script/uwsgi.pid 11 # 指定IP端口 12 http=192.168.177.234:8000 13 # 指定静态文件 14 static-map=/static=/home/www/python_project/mysite/static 15 # 启动uwsgi的用户名和用户组 16 uid=root 17 gid=root 18 # 启用主进程 19 master=true 20 # 自动移除unix Socket和pid文件当服务停止的时候 21 vacuum=true 22 # 序列化接受的内容,如果可能的话 23 thunder-lock=true 24 # 启用线程 25 enable-threads=true 26 # 设置自中断时间 27 harakiri=30 28 # 设置缓冲 29 post-buffering=4096 30 # 设置日志目录 31 daemonize=/home/www/python_project/script/uwsgi.log在/script目录下执行命令启动项目:/usr/local/python3/bin/uwsgi --ini 访问:192.168.177.234:8000至此,uwsgi+django就完美结合了,但是,光有uwsgi还不够,uwsgi处理动态请求能力高,但对于静态请求(如static文件,css,js文件等)处理能力差,此时就要结合nginx一起使用安装nginx具体步骤: 下载源码包,解压,编译安装就ok,自行百度我是安装在/usr/local/nginx下,然后进入 /usr/local/nginx/conf,打开nginx.conf,在http{}内部最末尾处添加 “include vhost/*.conf;” 保存退出。然后在/usr/local/nginx/conf建立一个文件夹vhost,进入vhost,在vhost创建一个文件django.com.conf内容如下: 2 server { # 这个server标识我要配置了 3 4 listen 8001; # 我要监听那个端口 5 server_name 192.168.177.234; # 你访问的路径前面的url名称 6 access_log /var/log/nginx/access.log; # Nginx日志配置 7 error_log /var/log/nginx/error.log; 8 charset utf-8; # Nginx编码 9 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; # 支持压缩的类型 10 11 error_page 404 /404.html; # 错误页面 12 error_page 500 502 503 504 /50x.html; # 错误页面 13 14 # 指定项目路径uwsgi 15 location / { # 这个location就和咱们Django的url(r'^admin/', admin.site.urls), 16 include /usr/local/nginx/conf/uwsgi_params; # 导入一个Nginx模块他是用来和uWSGI进行通讯的 17 uwsgi_connect_timeout 30; # 设置连接uWSGI超时时间 18 uwsgi_pass unix:/home/www/python_project/script/uwsgi.sock; # 指定uwsgi的sock文件请求给他 19 } 20 21 # 指定静态文件路径 22 location /static/ { 23 alias /home/www/python_project/mysite/static/; 24 index index.html index.htm; 25 } 26 27 }最后一步,重启/etc/init.d/nginx restart然后访问nginx中的端口8001,nginx就会代理到uwsgi中就可以访问python项目了,访问地址:192.168.177.234:8001 大功告成【注】:在这里我提一下,我配置时候都是一摸一样的但是最终访问192.168.177.234:8001 还是502报错,后来我发现是script文件夹权限问题,nginx在去调用执行、写入时候没权限,所以这个文件夹以及里面的文件都要有写、执行权限,直接就777就可以了
阅读全文
0 0
- 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
- HDU1459 Power Network 【多源多汇最大流】
- SO_REUSEADDR和SO_REUSEPORT异同
- Go 计算程序运行时间
- Android-ADB调试桥常用指令
- 大数据构成的数字城市技术
- 部署django项目
- Android架构(一)MVP全解析
- 关于Java多线程生产者消费者实例
- 字符串转换成整数
- 万树IT:不聪明又成绩不好,能学编程么?
- java基础10:集合框架,迭代器,泛型
- Linux下设置开机自启动Tomcat
- Node.js基础get post请求
- 编写Qt Designer自定义控件(四)——使用自定义控件