Django Nginx Gunicorn Centos7 环境部署,将项目上线
来源:互联网 发布:java中常用的集合类 编辑:程序博客网 时间:2024/06/06 01:36
序言:相信很多人遇到了这样的问题,将自己的django项目完成后,准备部署到Linux上,遇到了很多的麻烦,网上的教程大多数使用python2的django项目,一旦用于python3后,就会出很多的bug。本教程详细描述python3 Django 1.11项目上线的详细过程
创建一个虚拟环境
# cd /home/# mkdir djangoproject# cd ./djangoproject/# python -m venv djangoprojectenv
其中 python -m venv xxx 是python3自带的一种创建xxx虚拟环境的方式,这里我已经创建了一个 djangoprojectenv 虚拟环境
进入虚拟环境
# source djangoprojectenv/bin/activate
可以发现已经进入了虚拟环境,在命令行前有一个(djangoprojectenv) 标识,例如:
# (djangoprojectenv) [root@iz2zeb45dolegxb5nfuexez djangoproject]#
安装工具
使用pip时推荐大家使用豆瓣源,安装速度会飞快,例如:
# pip install -i https://pypi.douban.com/simple django
由于我使用的是阿里云服务器,用pip安装应用时,会自动加速,所以采用默认方式,大家如果觉得自己下载速度慢,可以采用豆瓣源
# pip install django# yum install mysql-devel # pip install mysqlclient# pip install gunicorn
创建django项目
# django-admin.py startproject djangoproject .# ls
可以看到目录结构
# djangoproject djangoprojectenv manage.py
注意:创建djangoproject . 后面的 . 一定不要搞掉了
修改项目的settings
# vim djangoproject/settings.py
修改settings.py中的数据库参数
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'djangoproject', 'USER': 'root', 'PASSWORD': 'password', 'HOST': '127.0.0.1', 'PORT': '3306', 'OPTIONS': { 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'" } }}
注意修改数据库名、账号和密码
在settings.py 添加静态文件路径参数
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
在settings.py 修改ip权限,允许所有ip访问
ALLOWED_HOSTS = ["*"]
然后保存文件,按esc :wq
在数据库中生成数据表
# ./manage.py makemigrations# ./manage.py migrate
创建一个超级用户
# ./manage.py createsuperuser
收集静态文件
# ./manage.py collectstatic
这一步很重要,否则页面会乱码
开启Django项目
# ./manage.py runserver 0.0.0.0:8000
你可以在你的浏览器访问服务器,输入ip和port,格式如下:
http://server_domain_or_IP:8000
还可以访问你的数据库
http://server_domain_or_IP:8000/admin
登入你自己设置的superuser查看数据库
测试Gunicorn是否能启动你的项目服务
# gunicorn --bind 0.0.0.0:8000 djangoproject.wsgi:application
访问ip地址看浏览器是否能正常查看内容(此时没有退出虚拟环境)
完成测试后,按CTRL-C 停止 Gunicorn 运行
退出虚拟环境
# deactivate
创建一个 Gunicorn Systemd Service 文件
# vim /etc/systemd/system/gunicorn.service
修改内容如下:
[Unit]Description=gunicorn daemonAfter=network.target[Service]User=rootGroup=nginxWorkingDirectory=/home/djangoprojectExecStart=/home/djangoproject/djangoprojectenv/bin/gunicorn --workers 3 --bind unix:/home/djangoproject/djangoproject.sock djangoproject.wsgi:application[Install]WantedBy=multi-user.target
一定要主要自己的工程路经和虚拟环境路径
WorkingDirectory与ExecStart 修改为自己的路径
开启Gunicorn服务并开机自启
# systemctl start gunicorn# systemctl enable gunicorn
配置nginx代理通过Gunicorn
# vim /etc/nginx/nginx.conf
添加内容如下:
server { listen 80; server_name server_domain_or_IP; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/djangoproject; } location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://unix:/home/djangoproject/djangoproject.sock; } }
注意修改自己的IP地址或域名,还有文件路径
server_domain_or_IP 代表你的IP地址或域名
修改nginx的权限
# usermod -a -G root nginx# chmod 710 /home/# nginx -t
如果没有报错,就行下一步操作
开启nginx服务并开机自启
# systemctl start nginx# systemctl enable nginx
现在,你可以访问你的ip了
注意:本文我是root用户登陆的
- Django Nginx Gunicorn Centos7 环境部署,将项目上线
- nginx+gunicorn+virtualenv部署django项目
- django+gunicorn+nginx部署项目 入门经验
- virtualenv+gunicorn+supervisor+nginx 部署 django项目
- django + gunicorn + nginx 部署
- nginx+gunicorn+django部署
- 【Python】Centos7下部署Django(nginx+gunicorn)
- Centos7配置Django+Gunicorn+Nginx
- nginx + gunicorn + virtualenv部署django
- Django笔记 生产环境部署 gunicorn+nginx+supervisor
- [django]django 部署,gunicorn、virtualenv、nginx
- django+nginx+supervisor+gunicorn+gevent 网站部署
- Mac下Django+gunicorn+Nginx服务器部署
- django+nginx+supervisor+gunicorn+gevent 网站部署
- nginx + gunicorn + django的简单部署
- Django+nginx+gunicorn部署流程(一)
- Django+nginx+gunicorn部署流程(二)
- centos6 nginx + gunicorn + django的简单部署
- 可能你不知道,高薪程序员都在看这10个技术公众号
- 3行Python代码完成人脸识别
- 手慢无 | 为什么这个Linux运维班的学员被企业哄抢?
- 斜阳一抹
- VMware NAT网络模式
- Django Nginx Gunicorn Centos7 环境部署,将项目上线
- python读取.mat数据之scipy.io&h5py
- storm基础一
- tf.placeholder()
- android studio在新窗口中打开项目
- ORACLE触发器详解
- 线性判别式分析-LDA-Linear Discriminant Analysis
- 安卓知识点及问题处理方案记录,持续更新~
- 线下零售业软实力升级,主角竟是科技公司?