python-env

1, mysql

grant all on demo.* to demo@'127.0.0.1' identified by 'wd1023';
flush privileges;
create database demo character set = utf8;

2,nginx 和初始坏境脚本

# onestack的脚本
wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ~/oneinstack/install.sh --nginx_option 1     # python编译安装和虚拟环境
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz && tar xvf Python-3.6.5.tar.xz && cd Python-3.6.5/
./configure && make && make install
mkdir -p /data/ && cd /data
python3.6 -m venv py36
source /data/py36/bin/activate# 项目安装
unzip demo.zip
mv demo wwwroot/project
cd /data/wwwroot/project/
apt install libmysqlclient-dev -y
pip install -r requirements.txt

3, Django 项目配置

vi demo/settings.py
ALLOWED_HOSTS = ['*']                               #允许任意主机访问
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'demo','USER':'demo','PASSWORD':'wd1023','HOST':'192.168.1.200''PORT':'3306','OPTIONS': MYSQL_DATABASE_OPTIONS,}
}
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')     #设置静态目录python manage.py collectstatic                      #采集静态文件到指定的STATIC_ROOTpython manage.py makemigrations
python manage.py migrate                            #数据库对象生成
python manage.py createsuperuser                    #超级管理员
python manage.py runserver 0.0.0.0:8000             #测试运行

4, uwsgi相关配置文件和目录

mkdir /data/uwsgi-script -p                         #创建uwsgi-script存放log等文件(原来是想存放自动脚本)
chown www.www -R /data/wwwroot/project              #修改项目文件属主和uwsgi中一致
mkdir /etc/uwsgi/sites/ -p                          #建立uwsgi统一的站点配置目录(类似于nginx的conf/vhost目录)
cat /etc/uwsgi/sites/demo.ini                       #生成项目的uwsgi配置demo.ini
[uwsgi]
#socket = :8000
uid = www
socket = /run/uwsgi/demo.sock                       #用unix-socket方式
chmod-socket = 660                                  #socket权限
chown-socket = www:www                              #socket属主#http = 192.168.1.210:8000
static-map=/static=/data/wwwroot/project/static/    #静态文件路径和setting里的STATIC_ROOT一致
chdir = /data/wwwroot/project/                      #项目主目录
module = demo.wsgi:application                      #项目的app中的wsgi路径(因为uwsgi其实是封装wsgi)
home = /data/py36                                   #虚拟环境主目录
pidfile = /data/uwsgi-script/demo/uwsgi.pid         #pid文件
daemonize = /data/uwsgi-script/demo/uwsgi.log       #日志文件
master = true
processes = 3                                       #进程和线程数
threads = 2
vacuum = true                                       #这项必须开启,才能使用emperor模式
max-requests = 2000

PS: 不创建会报错
mkdir /data/uwsgi-script/demo/
touch /data/uwsgi-script/demo/uwsgi.log

5, nginx相关配置

mkdir /usr/local/nginx/conf/vhost
vi /usr/local/nginx/conf/vhost/demo.conf
server {listen 80;server_name _;access_log      /data/wwwlogs/demo_nginx_access.log;client_max_body_size 75M;charset utf-8;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;location /static {                                  #nginx跳过uwsgi直接处理静态请求alias /data/wwwroot/project/static/;}location / {include uwsgi_params;
#        uwsgi_pass 127.0.0.1:8000;uwsgi_pass unix:/run/uwsgi/demo.sock;           #nginx代理uwsgi的unix-socket}
}vi /usr/local/nginx/conf/nginx.conf   #备注主配置中的default server
:61,92 s/^/#/gnginx -t
nginx -s reload

6, systemcd脚本

cat /lib/systemd/system/demo.service
[Unit]
Description=uWSGI Emperor service[Service]
ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown www.www /run/uwsgi'
ExecStart=/data/py36/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all[Install]
WantedBy=multi-user.targetsystemctl enable demo

7,uwsgi 测试命令

启动:uwsgi --ini your_path/demo.ini
停止:uwsgi --stop your_path/uwsgi.pid
重启:uwsgi --reload your_path/uwsgi.pid

转载于:https://www.cnblogs.com/ops-sylar/p/8984629.html

Django和uwsgi,配合nginx做静态缓存相关推荐

  1. centos下配置django、uwsgi和nginx(亲测成功)

    服务器版本为centos7.4,默认看本博客的人会基本的django开发,即知道如何使用pip安装django及venv虚拟环境并新建项目以及使用django自带的wsgi.py启动项目. 本教程使用 ...

  2. centos7.3部署django用uwsgi和nginx[亲测可用]

    centos7.3部署django用uwsgi和nginx[亲测可用] 现在nginx nginx version: nginx/1.10.2 uwsgi 2.0.17 django2.0.5 都已经 ...

  3. linux配置nginx cdn,用Nginx做静态文件的CDN

    鉴于监管环境和网站速度之间的矛盾,目前的网络架构方式如下: 1.web动态页面(含数据库)架设在位于美国西海岸的数据中心: 2.静态文件,例如css.js.exe.图片存放在国内几台windows服务 ...

  4. 奥塔在线:CentOS7下配置Nginx实现本地缓存

    当Nginx作为静态资源文件服务器时,为保障高并发时的访问性能,一般都会对Nginx做本地缓存策略. 第一步:在tmpfs上创建缓存目录 #在/dev/shm下创建缓存目录 mkdir /dev/sh ...

  5. python3 supervisor_python3-django+uwsgi+supervisor+nginx跳坑指南(记录)

    首先运行django项目:在项目目录内: python manage.py runserver 0.0.0.0:8000 外部服务器访问:http://www.xxx.com:8000/ 可以正常运行 ...

  6. Nginx安装,Nginx静态缓存,Nginx Gzip压缩,Nginx负载均衡,Nginx方向代理,Nginx+Tomcat+Redis做session共享

    Nginx安装 nginx-1.10.1.tar.gz安装,参考http://blog.csdn.net/tototuzuoquan/article/details/47381907. 修改nginx ...

  7. Nginx安装,Nginx静态缓存,Nginx Gzip压缩,Nginx负载均衡,Nginx方向代理,Nginx+Tomcat+Redis做session共享...

    Nginx安装 nginx-1.10.1.tar.gz安装,参考http://blog.csdn.net/tototuzuoquan/article/details/47381907. 修改nginx ...

  8. 如何在CentOS 7上使用uWSGI和Nginx来运行Django应用程序

    @(tigerfive)[tigerfive][linux学习笔记][uwsgi][django][nginx] 前言 先决条件和目标 安装和配置VirtualEnv和VirtualEnvWrappe ...

  9. Django+Linux+Uwsgi+Nginx项目部署文档

    Django+Linux+Uwsgi+Nginx项目部署文档 WSGI 在生产环境中使用WSGI作为python web的服务器 WSGI:全拼为Python Web服务器网关接口,Python We ...

最新文章

  1. Go 知识点(10) — 子协程能否使用主协程变量
  2. Spring MVC拦截器实现
  3. Python TimedRotatingFileHandler 多进程环境下的问题和解决方法
  4. 夜晚 十点 React-Native 源码 暴力畜 系列
  5. mysql表只有frm文件_MYSQL数据文件--.frm文件(只有.frm文件时的表结构恢复)
  6. 01 | 顶层设计:微服务生态与 Spring Cloud Alibaba
  7. LinkedBlockingQueue的put,take方法
  8. JavaScript学习笔记:数组reduce()和reduceRight()方法
  9. Redis监控利器---Redis State
  10. 内核运行之前访问IO
  11. atitit.编程语言的未来趋势与进化结果
  12. android 多线程 进度条,Android子线程进度条不显示的问题
  13. k3刷机 重置_什么是联想 K3刷机前的双清
  14. 多款日志分析工具,总有一款适合你
  15. 【科普】什么是TPU?
  16. android 邮箱 推荐,Android邮箱谁最棒?最新热门邮箱App横向测试
  17. 上次的计网络课你是不是又旷课了
  18. arduino 嗡鸣器 音乐_arduino笔记一:用arduino实现蜂鸣器播放音乐
  19. 「第二部:容器和微服务架构」(2) 容器化单体应用
  20. 使用SpringBoot中出现Whitelabel Error Page 404 错误的几种原因

热门文章

  1. Report_客制化Excel报表中的XLS标记(案例)
  2. 缺少 mcrypt 扩展。请检查 PHP 配置。(phpmyadmin)
  3. 中国石油管道科技研究中心2014届应届毕业生招聘(软件工程师岗)
  4. Ubuntu中的默认shell
  5. 如何在 Outlook 2003、Outlook 2007 中管理pst 文件
  6. .NET Core微服务系列基础文章索引(目录导航Final版)
  7. 生了娃照样能打,两位母亲温网会师
  8. 2018.06.28 与或(线段树)
  9. 新手vue构建单页面应用实例
  10. AngularJs+bootstrap搭载前台框架——准备工作