Centos7 部署Django项目 uwsgi + nginx
启动
首先确保你的django项目是可以在虚拟环境中跑起来的,环境管理窝用的是pyenv,pyenv不知道什么东西的可以参考窝之前写过的Pyenv环境管理的安装文。
项目启动
python manager runserver

但是这里有个问题,如果你是虚拟机的话,你就无法通过127的地址来访问你的项目
所以需要配合nginx来使用
nginx配置
centos 的配置nginx和ubuntu的有点不一样,下载的教程网上很多,我就不列了,默认已经安装好nginx ,然后通过find命令找到nginx的默认配置路径
find / -name "nginx.conf"

nginx路径如下

得到nginx的路径,然后开启nginx服务
启动./usr/local/nginx/sbin/nginx
更新 ./sbin/nginx -t
重载 ./sbin/nginx -s reload
查看nginx日志可以到logs下去看配置日志

err.log为重载日志,access为日常访问日志
这时候,窝们就可以去做反向代理了,不过一般不在主配置文件nginx.conf下增加配置,需要另外起一个nginx的单独配置服务,修改
nginx.conf 在http下增加include 这的是为了配置服务可以被nginx读取到,且如果项目过多的话,好配置一点,配置如下

cd conf
mkdir vhost # 放置项目配置文件
#添加一条
include /usr/local/nginx/conf/vhost/*.conf;
这样,就可以在vhost添加自己项目的conf了
看看我们nginx启动成功没有, 输入 http:ip 地址

没问题。然后在vhost写单独的配置文件

有两种写法,一种是可以直接访问的,不经过uwsgi启动的,可以直接测试,test_centos.conf 配置 如下
server {
listen 8100;
server_name 192.168.254.128;
access_log /var/log/nginx/uwsgi-access.log; # 指定nginx日志存放路径
error_log /var/log/nginx/uwsgi-error.log; # 同上
location / {
root /home/dior/yyxx_platform_center;
proxy_pass http://127.0.0.1:8000/; # 通过ip地址来直接访问,监听的是8100端口,反向代理到8000端口
access_log off;
}
}
修改了 nginx 之后需要重载 -t 代表先测试

nginx 日志如下

这时候 访问 http://192.168.254.128:8100/ 这样就可以通过Nginx访问到你服务器本地的服务
当然我们不能让程序这样一直开着,所以我们需要用到uwsgi,来通过后台启动 写nginx的配置
server {
listen 8100;
server_name 192.168.254.128;
access_log /var/log/nginx/uwsgi-access.log;
error_log /var/log/nginx/uwsgi-error.log;
location / {
root /home/dior/yyxx_platform_center;
uwsgi_pass 127.0.0.1:8000;
include uwsgi_params;
access_log off;
}
}
注意nginx需要修改的地方,然后重载,然后就可以将启动方式改为uwsgi了
uwsgi
uwsgi用xml配置文件直接配置,配置如下
<uwsgi>
<socket>127.0.0.0:8000</socket>
<listen>128</listen>
<master>true</master>
<processes>4</processes>
<pythonpath>./</pythonpath> #此处为django项目的目录
<module>django_wsgi</module>
<profiler>true</profiler>
<memory-report>true</memory-report>
<enable-threads>true</enable-threads>
<logdate>true</logdate>
<limit-as>2010</limit-as>
<py-autoreload>0</py-autoreload>
<touch-reload>up_version</touch-reload> # 修改该文件就可以重启服务
<daemonize>uwsgi.log</daemonize> # uwsgi日志文件输出(注意需要有权限)
</uwsgi>
然后启动命令为
uwsgi -x *.xml
# 修改了之后 需要重启服务的命令为
touch up_version
uwsgi错误日志和输出日志除了自己定义下的日志下,大部分都存在 配置文件 daemonize 的uwsgi.log日志中,这样就可以看日志调试了
Centos7 部署Django项目 uwsgi + nginx的更多相关文章
- ubuntu 部署Django项目+uwsgi+Nginx
1.部署框架 Nginx负责静态资源请求,并且把无法处理的请求转发至uwsgi处理 2.安装并配置Nginx 2.1安装 apt-get install nginx (如果安装失败请先升级apt-ge ...
- docker 部署django项目(nginx + uwsgi +mysql)
最近在学习用docker部署Django项目,经过百折不挠的鼓捣,终于将项目部署成功,爬过好多坑,也发现很多技能需要提高.特此写下随笔与小伙伴们分享,希望能对大家有所启发. docker的理论我就不赘 ...
- CentOS7部署Django项目
1. 云服务器 这里使用的是腾讯云选择系统:CentOS7.3 记住云服务器登录密码 2. 配置Python3环境 默认Python环境为python2.7,yum安装是需要python2的环境的 安 ...
- CentOS7 部署 Django 项目
1. 更新系统软件包 yum update -y 2. 安装软件管理包和可能使用的依赖 yum -y groupinstall "Development tools" yum in ...
- 阿里云 Centos7 部署 Django 项目
前期准备 阿里云服务器 mysql数据库 已经本地运行成功的项目 阿里云服务器的环境配置 Git #代码管理 Gitlab #代码托管,要求服务器内存不低于2G,我选择放弃 Mysql #连接数据库 ...
- Nginx 和 Gunicorn 部署 Django项目
目录 Nginx 和 Gunicorn 部署 Django项目 配置Nginx 安装配置Gunicorn 通过命令行直接启动 Gunicorn 与 uwsgi 的区别,用哪个好呢 Gunicorn u ...
- CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境, 记坑篇
CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境 CentOS7 + Python3 + D ...
- nginx + uwsgi 部署django项目
因项目需求,需要部署django项目,这里是基础的nginx配合uwsgi部署django,后续会采用docker部署的方式 环境: centos7 python3.5.4 django2.1.4 u ...
- linux上使用nginx、uwsgi部署django项目
参考:CentOS7下部署Django项目详细操作步骤 注意事项: 在虚拟环境中操作,虚拟环境中安装nginx.uwsgi,虚拟环境外需安装uwsgi -- 临时关闭防火墙:systemctl sto ...
- 使用uWSGI+nginx部署Django项目
最近使用django写了一些项目,不过部署到服务器上碰到一些问题,还有静态文件什么的一堆问题,这里总结一下碰到的问题和解决方案,总体思路是按照官方文档走的. 原文地址:http://uwsgi-doc ...
随机推荐
- git操作回顾,从零入手
1.可在极狐或者git上直接通过http克隆项目,或者通过ssh密钥,这样就不用每次上传代码需要输入密码和验证 ssh密钥参考如下 (80条消息) git如何生成ssh密钥 git生成配置ssh密钥k ...
- [jointjs] 自定义shape
前面一篇写了使用jointjs实现自动布局和拖拽缩放,这篇记录一下自定义图形. 首先jointjs内置的图形有很多,文档已经列出来了: 但是有时候这些图形满足不了我们的需求,就需要我们自己去绘制自己想 ...
- win10,在桌面点击右键:显示设置和个性化,出现“该文件没有与之关联的应用来执行该操作,请安装应用,若已经安装应用,请在默认应用设置页面中创建关联”
参考:https://zhidao.baidu.com/question/2076100681854702028.html 1. WIN + R 打开运行,并输入 regedit,点击确定,进入注册表 ...
- Linux系统mysql免安装版配置指南
1.下载(/usr/local目录) wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.32-linux-glibc2.12-x ...
- Why WebRTC丨前世今生
前言 近几年实时音视频通信应用呈现出了大爆发的趋势.在这些实时通信技术的背后,有一项不得不提的技术--WebRTC. 今年 1 月,WebRTC 被 W3C 和 IETF 发布为正式标准.据调研机构 ...
- 从零开始学习Java系列之Java运行机制与跨平台特性
全文大约[4000]字,不说废话,只讲可以让你学到技术.明白原理的纯干货!并带有丰富的案例及配图,让你更好地理解和运用文中的技术概念,给你带来具有足够启迪的思考-- 在上一篇文章中,壹哥给大家介绍了J ...
- Centos 7安装ansible自动化运维工具
1.介绍: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.SaltStack.chef.func)的优点,实现了批量系统配置.批量程序部署.批 ...
- 如何使用Photino创建Blazor项目进行跨平台
Photino是什么 Photino是一组使用Web (HTML/CSS/JavaScript)UI创建桌面应用程序的技术.TryPhotino.io 维护 .NET 构建,并鼓励社区开发 Photi ...
- MySQL长时间不登录密码过期解决办法
MySql管理工具 Navicat for MySql的时候,弹出了一个1862 - MySql Your password has expired.To log in you must change ...
- IconJar - Mac 上的一款多功能图标素材管理工具
IconJar 是一个多功能的图标管理工具,由世界各地的设计师和开发人员使用.在一个应用程序中搜索.组织.预览和检索图标,而不是创建大量的文件夹来存储你的收藏.这款应用针对黑暗模式进行了优化,并支持S ...