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的家目录下
转载于:https://www.cnblogs.com/liangweixiong/p/7798114.html
Debian+Django+uWsgi+nginx+mysql+celery相关推荐
- [转]Docker部署Django由浅入深系列(下): 八步部署Django+Uwsgi+Nginx+MySQL+Redis
在上篇教程中,我们手动构建了两个容器,一个容器放Django + Uwsgi,另一个容器放Nginx,成功部署了一个简单的Django项目.然而在实际的生产环境中,我们往往需要定义数量庞大的 dock ...
- Docker部署Django由浅入深系列(中): 双容器部署Django + Uwsgi + Nginx
本文是使用Docker部署Django由浅入深系列的中篇,我们将构建两个容器,一个容器放Django + Uwsgi,另一个容器放Nginx.我们将了解不同容器间是如何通信的,并学会正确配置uwsgi ...
- 如何让nginx执行python代码_生产环境部署Python语言代码(django+uwsgi+nginx)
本文主要向大家介绍了生产环境部署Python语言代码(django+uwsgi+nginx),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 基础环境不做介绍,在django开发w ...
- 【django云服务器部署】django+uwsgi+nginx 部署的完整流程
本篇博客完整地记录了我从购买服务器到完成部署的全过程,需要的朋友可以参考一下我的流程,看这一篇文章就能成功部署项目啦. 写这个的本意是为备忘( 保姆级步骤),同时由于我在最开始部署项目时,没有找到一个 ...
- 瞬间心情愉悦,头发都少掉了几根!---Django+uwsgi+Nginx项目部署超详细步骤
文章目录 瞬间心情愉悦,头发都少掉了几根!---Django+uwsgi+Nginx项目部署超详细步骤 先决条件 步骤 本地运行测试 上传服务器 环境安装 准备django程序 完美解决! 瞬间心情愉 ...
- django+uwsgi+nginx部署
最近线上部署运维工单系统,使用django+uwsgi+nginx部署,发现这篇文章,很详细,觉得不错,转载一下: 写了那么长时间的django,一直没跟nginx结合一下,访问的时候老是得加端口号, ...
- Django + Uwsgi + Nginx 实现生产环境部署1
项目开发完毕后,需要将代码放到服务器上,这样用户才能访问.接下来我们一步一步来进行一波部署操作. 1. 简单粗暴 项目开发完毕,在部署之前需要再配置文件中将 ALLOWED_HOSTS配置设置为:当前 ...
- CentOS7.2 Django + uwsgi + Nginx 部(cǎi )署(kēng)指(zhī)南(lǜ)
在此之前笔者也是使用 python manage.py runserver 来运行服务器,这只适用测试环境中使用.正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, ...
- Centos django+uwsgi+nginx部署
Centos django+uwsgi+nginx部署 安装Python CentOS 7 Linux发行版默认包含Python 2.但是,Python 2将于2020年1月1日停产.尽管一些遗留应用 ...
最新文章
- 4句话让你明白什么是AI
- Java基础学习_01 概述及环境配置
- sqlserver 两个数据库同步
- Magento Block设计分析(深入分析)
- html php获取post数据格式,html - php文件无法得到POST过来的数据
- YBTOJ:魔法数字(数位dp)
- ASP.NET站点导航(五)
- [Lydsy1805月赛] 对称数
- 《Android Design》 4.4 中文版
- 教你写一个弹幕库,确定不了解一下?,请查收
- android tv 蓝牙服务_5款面向Android TV的优秀文件管理器
- 速达软件无法打开帐套数据库/一般性网络错误
- WiFi6技术特点及现状调研
- Linux添加用户及用户权限管理
- Linux下查看网络设备类型
- 有序的uuid(32位)
- mv或者cp带小括号文件名解析问题总结
- 第19天 写一个方法验证国内车牌号是否正确
- 无障碍感受 北京之美
- Cannot add property xxx, object is not extensible