nginx + uswgi +django
适合ubuntu 系统,不只是树莓派
安装必要软件
pt-get install build-essential psmisc
apt-get install python-dev libxml2 libxml2-dev
apt-get install python-setuptools
cd /opt/
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar -zxvf uwsgi-latest.tar.gz
mv uwsgi-latest/ uwsgi/
cd uwsgi/
python setup.py install
安装nginx/安装mysql
apt-get install mysql-server
apt-get install nginx
安装uwsgi,阿里源带了uwsgi这里直接安装
apt-get install uwsgi uwsgi-core uwsgi-plugin-python
安装django
apt-get install python-django python-mysqldb
配置
cat /etc/uwsgi/apps-enabled/www.ini
[uwsgi]
socket = 192.168.0.14:9000
chmod-socket =
limit-as =
processes =
master = true
daemonize = /var/log/uwsgi.log
enable-threads = true
vacuun = true
chdir = /var/www/html/testp/mysite #django 项目目录
module = mysite.wsgi #创建完项目后会在mysite侠自动生成wsgi.py ####说明module 配置######
tree /var/www/html/testp/mysite/
/var/www/html/testp/mysite/
├── manage.py
└── mysite
├── __init__.py
├── __init__.pyc
├── settings.py
├── settings.pyc
├── urls.py
├── wsgi.py
└── wsgi.pyc
重启uwsgi服务,此时会开放9000端口
voke-rc.d uwsgi restart
nginx配置
cat /etc/nginx/sites-enabled/www
server {
listen 8000; //转发8080端口到uwsgi端口9000
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass 192.168.0.14:9000;
uwsgi_read_timeout 2;
}
location /static {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /home/fnngj/pydj/myweb/static/;
}
}
socket配置,这里可以选择写ip或者改成socket
cat > /etc/uwsgi/apps-enabled/www.ini << EOF
[uwsgi]
socket = /var/run/uwsgi/app/www/socket
chmod-socket =
limit-as =
processes =
max-request =
memory-report = true
enable-threads = true
pythonpath = /home/user/www
chdir = /home/user/www/mysite
wsgi-file = /home/user/www/mysite/wsgi.py
EOF # 重启uwsgi
invoke-rc.d uwsgi restart
注意上面的socket配置,这个在我机子上是这个路径,大家可以cd /var/run里面找下,然后配置正确,接下来建立Nginx配置文件: nginx配置 cat > /etc/nginx/sites-enabled/www << EOF
server {
listen ;
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass unix:///var/run/uwsgi/app/www/socket;
}
}
EOF 这里的uwsgi_pass依旧是上面我们找到的socket,注意一下server_name,这个是我们绑定的域名,通过nginx -s reload重新加载nginx。
socket
设置django admin 静态文件
如果不配置,访问admin就会没什么页面效果
1先设置setting
#增加ROOT这个行指定一个自己的目录,自行创建下面的目录
STATIC_ROOT ='/var/www/html/server/root_static/' STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)
2更改nginx
server {
listen 8888;
server_name localhost;
location / {
include uwsgi_params;
uwsgi_pass unix:///var/run/uwsgi/app/www/socket;
uwsgi_read_timeout 60;
}
location /static {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /var/www/html/server/root_static; 配置成刚才的目录即可
}
}
重启nginx即可
配置sqlite3数据库权限(这样就赋予给2个文件权限比较安全)
sudo chgrp www-data project_dir //nginx使用的是www-data用户,project_dir项目目录
sudo chmod g+w project_dir
sudo chgrp www-data project_dir/db.sqlite3 # 更改为你的数据库名称,项目目录的下一层就是默认的数据库存储路径
sudo chmod g+w project_dir/db.sqlite3
nginx这个文章写的不错
http://code.ziqiangxuetang.com/django/django-nginx-deploy.html
nginx + uswgi +django的更多相关文章
- Nginx + Uswgi + Django的部署
Nginx + Uswgi + Django的部署 待更新 https://code.ziqiangxuetang.com/django/django-static-files.html https: ...
- Nginx+uswgi+Django部署
详情参考: http://blog.csdn.net/a_little_snail/article/details/78045636
- Ubuntu上通过nginx部署Django笔记
Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式.今天在Ubuntu上使用Nginx部署Django服务,虽然不是第一次搞这个了,但是发现还是跳进了好多坑,g ...
- 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序
Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...
- 通过Nginx部署Django(基于ubuntu)
Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...
- Nginx+uWSGI+Django+Python+ MySQL 搭建可靠的Python Web服务器
一.安装所需工具 yum -y install gcc gcc-c++ rpm-build mysql* libtool-ltdl* libtool automake autoconf libtool ...
- 安装Nginx+uWSGI+Django环境
Ubuntu Server 12.04 安装Nginx+uWSGI+Django环境 今天要介绍的是利用APT源直接apt-get install安装配置我们所需要的环境,首先按惯例先安装MySQL和 ...
- debian完整部署 Nginx + uWSGI + Django
手工部署一个Django服务器真心不容易,需要安装很多东西.从头开始搭建服务器,主要是为了梳理一下后续开发中一般为碰到的平台部署.对后续问题的解决有一定帮助. 通常部署有2中方式: 一种是使用现成提供 ...
- Nginx+uWSGI+Django原理
Python的Web开发中,如果使用Django框架,那么较为成熟稳定的服务器架构一般是Nginx+uWSGI+Django.而为什么一定要三个结合在一起呢?直接使用Django的runserver来 ...
随机推荐
- HDU 1686 Oulipo (KMP 可重叠)
题目链接 Problem Description The French author Georges Perec (1936–1982) once wrote a book, La dispariti ...
- NYOJ 119 士兵杀敌(三) (线段树)
题目链接 描述 南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比较,计算出两个人的杀敌数差值,用这种方法一方面能鼓舞杀敌数高的人,另一方面也算 ...
- js中call与apply的区别以及使用~
今天看了一下call与apply的区别~~ <!DOCTYPE html> <html> <head> <title>testCall</titl ...
- Java学习笔记——继承、接口、多态
浮点数的运算需要注意的问题: BigDecimal operand1 = new BigDecimal("1.0"); BigDecimal operand2 = new BigD ...
- aarch64_g3
glibc-langpack-wal-2.25-6.fc26.aarch64.rpm 2017-06-20 17:08 210K fedora Mirroring Project glibc-lang ...
- 关于Java中final关键字的详细介绍
Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...
- 公司xenserver搭建的使用
[root@xenserver ~]# ls -l /dev/disk/by-path/total 0lrwxrwxrwx 1 root root 9 Jan 19 16:33 pci-0000:0 ...
- jumpserver安装教程
centos7系统一步一步安装jumpserver 参照官方文档,查找了百度所有的文档,基本上都是按照官方的文档操作的 官方文档点我-> 安装jumpserver需注意: 1:网络环境要好,有的 ...
- cocos2dx中调用TinyXml读取xml配置文件 || cocos2d-x 中跨平台tinyxml读取xml文件方式
TiXmlDocument *doc = newTiXmlDocument; #if (CC_TARGET_PLATFORM ==CC_PLATFORM_ANDROID) //Android平台tin ...
- vue总结 02指令
指令 v-text 预期:string 详细: 更新元素的 textContent.如果要更新部分的 textContent ,需要使用 {{ Mustache }} 插值. 示例: <span ...