Debian+Django+uWsgi+nginx+mysql+celery
下载系统各种依赖
nano /etc/apt/sources.list
在Debian中使用apt-get安装软件包时经常会提示让你插入netinst的光盘:
Media change: please insert the disc labeled
把下面这一行注释掉
deb cdrom:[Debian GNU/Linux 8.2.0 _Jessie_ - Official amd64 CD Binary-1 20150$
apt-get update
apt-get install python-setuptools python-dev python-pip python-virtualenv redis-server mysql-server mysql-client git -y
把项目拉到服务器
cd ~
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
把公钥粘贴到码云上
git clone xxxxxxxxx
此处应以码云上的地址为准
pip安装各种包
cd ~/serve/
EnvironmentError:mysql config not found
apt-get install libmysqld-dev
网上有人解释说使用apt-get安装的MySQL是没有mysql_config这个文件的
pip install -r requirements.txt
配置celery
cd /etc/systemd/system/
nano celery.service
内容如下:
[Unit]
Description=Celery Service
After=network.target
[Service]
Type=forking
#User=celery
#Group=celery
EnvironmentFile=-/etc/conf.d/celery
WorkingDirectory=/root/serve
ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \
-A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
--logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \
--pidfile=${CELERYD_PID_FILE}'
ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \
-A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
--logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
[Install]
WantedBy=multi-user.target
mkdir conf.d
cd conf.d/
nano celery
内容如下:
CELERYD_NODES="w1 w2 w3"
CELERY_BIN="/usr/local/bin/celery"
CELERY_APP="serve"
CELERYD_MULTI="multi"
CELERYD_PID_FILE="/etc/celery/%n.pid"
CELERYD_LOG_FILE="/etc/celery/%n%I.log"
CELERYD_LOG_LEVEL=“INFO”
启动celery
systemctl daemon-reload
systemctl start celery
ps -ef|grep celery
systemctl enable celery
systemctl stop celery
安装配置uwsgi
pip install uwsgi
cd /root/
nano serve.ini
内容如下:
[Install]
WantedBy=multi-user.target
root@Aaron:/etc/apt# nano /etc/conf.d/celery
root@Aaron:/etc/apt# cat /root/serve.ini
[uwsgi]
chdir=/root/serve
socket=/var/run/serve.sock
chmod-socket=666
module=serve.wsgi:application
master=True
pidfile=/tmp/serve.pid
vacuum=True
max-requests=5000
processes = 4
daemonize=/var/log/uwsgi/serve.log
测试uwsgi是否正常
uwsgi -i /root/serve.ini
ps -ef |grep uwsgi
pkill -9 uwsgi
安装配置nginx
apt-get install nginx
cd /etc/nginx/sites-enabled/
nano court
注意要把server_name的ip地址改了
内容如下:
server {
listen 80;
server_name 172.16.146.133;
client_max_body_size 10m;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript;
location / {
uwsgi_pass unix:///var/run/serve.sock;
include uwsgi_params;
uwsgi_param UWSGI_SCHEME $scheme;
uwsgi_param SERVER_SOFTWARE nginx/$nginx_version;
}
location /static/ {
alias /root/serve/static/;
index index.html index.htm;
}
location /static/admin/ {
alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin$
index index.html index.htm;
}
charset utf-8;
}
systemctl restart nginx
ps -ef|grep nginx
卸载nginx(if necessary)
dpkg --get-selections|grep nginx
apt-get --purge remove nginx
apt-get --purge remove nginx-common
apt-get --purge remove nginx-core
find / -name "*nginx*"|rm -fr
数据库相关操作
service mysql start
mysql -u root -p
create database serve;
create user ‘serve'@'localhost' identified by ‘serve';
grant all privileges ON serve.* to ‘serve'@'localhost';
flush privileges;
exit;
在django生成数据库相关表
cd ~/serve/
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
启动服务
systemctl start celery
uwsgi -i /root/serve.ini
可能出现的问题
输入ip地址之后,可能样式会丢失,网上解决办法:
chmod -R 755 /root
这个方法个人觉得是有危险的,但是是最快解决问题的,没办法,谁叫你把项目放在root的家目录下
Debian+Django+uWsgi+nginx+mysql+celery的更多相关文章
- Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)
Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...
- Django+uWSGI+Nginx 部署网站
Django 1.11设置 保证Django在本地调试没有问题: 当然这是前提^_^ 收集静态文件至指定文件夹 Django静态文件设置具体参考:https://docs.djangoproject. ...
- django+uWSGI+nginx的工作原理流程与部署过程
django+uWSGI+nginx的工作原理流程与部署过程 一.前言 知识的分享,不应该只是展示出来,还应该解释这样做是为什么... 献给和我一样懵懂中不断汲取知识,进步的人们. 授人与鱼,不如授人 ...
- CentOS7.4部署Python3+Django+uWSGI+Nginx
CentOS7.4部署Python3+Django+uWSGI+Nginx http://www.showerlee.com/archives/2590
- virtualvenv+django+uWSGI+nginx 部署
原创博文 转载请注明出处! 1. virtualvenv 2. django 3. uWSGI 4. nginx 5. 踩坑记录 1. virtualvenv virtualvenv install ...
- Django+uwsgi+nginx+angular.js项目部署
这次部署的前后端分离的项目: 前端采用angular.js,后端采用Django(restframework),他俩之间主要以json数据作为交互 Django+uwsgi的配置可以参考我之前的博客: ...
- django+uwsgi+nginx部署(非常详细)
django+uwsgi+nginx部署 1.介绍: 在网上看了很多教程,但自己部署了很久都没有成功,这篇博文记录自己所踩过得坑. 2.环境: Ubuntu 16.04.1 LTS (GNU/Linu ...
- python django uwsgi nginx安装
python django uwsgi nginx安装 已安装完成python/django的情况下安装 pip install uwsgi cd /usr/share/nginx/html/ vim ...
- 10: Django + Uwsgi + Nginx 的生产环境部署
1.1 一些重要概念 1.Web协议介绍 Web协议出现顺序: CGI -> FCGI -> WSGI -> uwsgi 1. CGI: 最早的协议 2. FCGI: 比CGI快 ...
随机推荐
- 「雅礼集训 2017 Day5」珠宝
题目描述 Miranda 准备去市里最有名的珠宝展览会,展览会有可以购买珠宝,但可惜的是只能现金支付,Miranda 十分纠结究竟要带多少的现金,假如现金带多了,就会比较危险,假如带少了,看到想买的右 ...
- ICPC China Nanchang National Invitational -- D. Match Stick Game(dp)
题目链接:https://nanti.jisuanke.com/t/38223 题意:有一堆火柴构成了一个加减法式子,你可以把火柴重新组合,要求数字个数和原来一样多,每个数字的位数和对应原数字位数一样 ...
- yii2在控制器中调用另一个控制器方法
Yii::$app->runAction(控制器/方法名);
- 重学JavaScript - 数组
作者:狐狸家的鱼 GitHub:surRimn 整理自MDN文档 数组 数组是一种类列表对象,长度和元素类型不固定. 描述 访问数组 JavaScript数组的索引是从0开始的,第一个元素的索引为0, ...
- MUI框架 按钮点击响应不好的问题解决办法
MUI框架 按钮点击响应不好的问题 实际例子: $(function (){ mui(document.body).on('tap', '.bindchk', function(e) { //触发一次 ...
- 域 搭建OU 组织单元
以这个界面开始操作: 在 baidu.com 右键---新建----组织单位----北京分公司 在 baidu.com 右键---新建----组织单位----北京分公司 在北京分公司 和南京分公司下面 ...
- 初始化仓库(git init)
创建新的仓库 首先进入需要初始化的目录,然后输入git init D:\Git\test λ git init Initialized empty Git repository in D:/Git/t ...
- 同一台电脑同时装jdk1.8和jdk1.7
因为之前安装的eclipse版本要求JDK1.8或以上的版本,但在搭建SSH框架的时候老是报错,又找不到2错误源.老师建议换个低版本的jdk.所以jdk版本需要降级. 但降级以后就不能打开eclips ...
- spring kafka生产、消费消息
参考网址: https://blog.csdn.net/lansetiankong12/article/details/54946641 1.新建Maven项目-KafkaMaven ->点击n ...
- windows powershell上批量修改文件名称
$i = Get-ChildItem -Path c:\pictures -Filter *.jpg | ForEach-Object { $extension = $_.Extension $new ...