在CentOS上部署Django+Nginx+Uwsgi环境

奇谭  2016-09-01 评论

VirtualEnv的作用:创建隔离的Python环境,解决模块或库的版本冲突或依赖。
安装virtualenv见CentOS上搭建virtualenv虚拟环境

在这里我们以实际部署一个项目为例,看看django+nginx+uwsgi的环境是怎么部署的

首先通过virtualenv创建python虚拟环境

$ virtualenv imaojia

然后激活虚拟环境并安装django

$ pip install django -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

接着新建一个项目并通过runserver方式启动测试

$ cd /data/wwwroot/
$ django-admin startproject imaojia

![/media/pictures/2016/09/01/django-app.png)

$ cd imaojia/
$ python manage.py runserver 0.0.0.0:8082

打开我们的浏览器,看到如下内容表明我们的项目已经正常跑起来了

ok,现在开始编写uwsgi配置

$ cat > uwsgi.ini <<EOF
[uwsgi]
home=/home/qitanl/imaojia
chdir=/data/wwwroot/imaojia
module=imaojia.wsgi:application
master=True
pidfile=/data/wwwroot/imaojia/imaojia.pid
vacuum=True
max-requests=1000
daemonize=/data/wwwroot/imaojia/uwsgi.log
socket = 0.0.0.0:10000
#http = 0.0.0.0:10000
EOF

接着安装uwsgi并运行

## 通过pip安装uwsgi,已安装的可以忽略
$ pip install uwsgi -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
$ uwsgi --ini uwsgi

ok,现在安装nginx并编写nginx配置文件

## 通过yum快速安装nginx,已安装的忽略
$ yum -y install nginx
$ cat > /etc/nginx/conf.d/imaojia.conf <<EOF
server
{
listen 8082;
server_name soms.imaojia.com; access_log /data/wwwroot/imaojia/imaojia.access.log main; location / {
root /data/wwwroot/imaojia; ## uwsgi配置的端口
uwsgi_pass 127.0.0.1:10000;
include uwsgi_params;
uwsgi_param UWSGI_CHDIR /data/wwwroot/imaojia;
uwsgi_param UWSGI_SCRIPT wsgi;
}
location ~ .*\.(log|php|pl|py|sh|cgi)$ {
return 403;
}
location /static/ {
root /data/wwwroot/imaojia;
access_log off;
}
location ~ .*\.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {
root /data/wwwroot/imaojia;
expires 30d;
}
location ~ .*\.(js|css)?(.*)
{
root /data/wwwroot/imaojia;
expires 12h;
}
}
EOF

嗯,现在启动nginx并访问看看

$ sudo systemctl start nginx
$ curl http://soms.imaojia.com:8082/

 

最新文章

  1. [c++] Basic ideas and Style Guide
  2. NSRunLoop &amp;&amp; NSTimer
  3. eclipse 创建项目时出现appcompat_v7?
  4. 导入charts开源库到工程里面
  5. 一个非常棒的html5框架-ionic
  6. 重新想象 Windows 8 Store Apps (64) - 后台任务: 开发一个简单的后台任务
  7. 《javascript高级程序设计》第三章 Language Basics
  8. 【BZOJ】【1021】【SHOI2008】Dept循环的债务
  9. open和fopen的区别
  10. CodeForces 558E(计数排序+线段树优化)
  11. 如何测试 Android 中的定时事件
  12. 【C#学习笔记】二、面向对象编程
  13. Python(四):数字连珠2
  14. js、jQuery 获取文档、窗口、元素的各种值
  15. Echarts 在动态HTML报告中的应用
  16. POJ1251(Kruskal水题)
  17. Java输入输出流详解(转)
  18. Boyer and Moore Fast majority vote algorithm(快速选举算法)
  19. 如何判断Map中的key或value是什么类型
  20. Winfrom PictureBox 设置图片自适应

热门文章

  1. Array类拓展方法
  2. cocos2d-x 3.3 引用【#include &quot;cocos-ext.h&quot;】头文件出现编译错误
  3. Jmeter中解决中文乱码问题
  4. spray-json
  5. linux下创建用户,给用户设置密码,给用户授权
  6. 20145322第四周JAVA程序设计基础学习总结
  7. Swift学习笔记 - Swift属性只读
  8. SaltStack安装Redis-第十篇
  9. ubuntu环境下nginx的编译安装以及相关设置
  10. Redis windows主从服务配置