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