启动

首先确保你的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的更多相关文章

  1. ubuntu 部署Django项目+uwsgi+Nginx

    1.部署框架 Nginx负责静态资源请求,并且把无法处理的请求转发至uwsgi处理 2.安装并配置Nginx 2.1安装 apt-get install nginx (如果安装失败请先升级apt-ge ...

  2. docker 部署django项目(nginx + uwsgi +mysql)

    最近在学习用docker部署Django项目,经过百折不挠的鼓捣,终于将项目部署成功,爬过好多坑,也发现很多技能需要提高.特此写下随笔与小伙伴们分享,希望能对大家有所启发. docker的理论我就不赘 ...

  3. CentOS7部署Django项目

    1. 云服务器 这里使用的是腾讯云选择系统:CentOS7.3 记住云服务器登录密码 2. 配置Python3环境 默认Python环境为python2.7,yum安装是需要python2的环境的 安 ...

  4. CentOS7 部署 Django 项目

    1. 更新系统软件包 yum update -y 2. 安装软件管理包和可能使用的依赖 yum -y groupinstall "Development tools" yum in ...

  5. 阿里云 Centos7 部署 Django 项目

    前期准备 阿里云服务器 mysql数据库 已经本地运行成功的项目 阿里云服务器的环境配置 Git #代码管理 Gitlab #代码托管,要求服务器内存不低于2G,我选择放弃 Mysql #连接数据库 ...

  6. Nginx 和 Gunicorn 部署 Django项目

    目录 Nginx 和 Gunicorn 部署 Django项目 配置Nginx 安装配置Gunicorn 通过命令行直接启动 Gunicorn 与 uwsgi 的区别,用哪个好呢 Gunicorn u ...

  7. CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境, 记坑篇

    CentOS7 + Python3 + Django(rest_framework) + MySQL + nginx + uwsgi 部署 API 开发环境 CentOS7 + Python3 + D ...

  8. nginx + uwsgi 部署django项目

    因项目需求,需要部署django项目,这里是基础的nginx配合uwsgi部署django,后续会采用docker部署的方式 环境: centos7 python3.5.4 django2.1.4 u ...

  9. linux上使用nginx、uwsgi部署django项目

    参考:CentOS7下部署Django项目详细操作步骤 注意事项: 在虚拟环境中操作,虚拟环境中安装nginx.uwsgi,虚拟环境外需安装uwsgi -- 临时关闭防火墙:systemctl sto ...

  10. 使用uWSGI+nginx部署Django项目

    最近使用django写了一些项目,不过部署到服务器上碰到一些问题,还有静态文件什么的一堆问题,这里总结一下碰到的问题和解决方案,总体思路是按照官方文档走的. 原文地址:http://uwsgi-doc ...

随机推荐

  1. win10 python + selenium 环境搭建

    一.安装python3 1.下载地址: https://www.python.org/downloads/windows/ 直接选择最新版,下拉 file列表中,选择win10版 64位  Windo ...

  2. 安装了lrzsz ,使用时,还是提示找不到

    安装了lrzsz ,使用时,还是提示找不到

  3. spring aop切面说明

    execution:处理Join Point的类型,例如call.execution (* android.app.Activity.on**(..)):这个是最重要的表达式,第一个*表示返回值,*表 ...

  4. Android笔记--添加联系人

    添加联系人(将联系人信息添加到手机的通讯录里面) 方式一:使用ContentResolver方法写入对象,每次一个字段 新创建一个需要加入通讯录的对象(我这里写的比较简单,并不是通讯录的标准格式,就是 ...

  5. day08-自定义转换器&处理JSON&内容协商

    自定义转换器&处理JSON&内容协商 1.自定义转换器 1.1基本介绍 SpringBoot 在响应客户端请求时,将提交的数据封装成对象时,使用了内置的转换器,也就是自动帮我们封装对象 ...

  6. ApplicationRunner 类说明

    在开发中可能会有这样的情景.需要在容器启动的时候执行一些内容.比如读取配置文件,数据库连接之类的.SpringBoot给我们提供了两个接口来帮助我们实现这种需求.这两个接口分别为 CommandLin ...

  7. EasyRelation发布,简单强大的数据关联框架

    当开发人员需要进行关联查询时,往往需要编写大量的冗余代码来处理数据之间的关系.这不仅浪费时间和精力,还会影响项目的可维护性和可扩展性. EasyRelation 是一个简单.高效的自动关联数据框架,可 ...

  8. Win系统下实现任意exe静态免杀

    Win系统下实现任意exe静态免杀?很简单 近几天用C++写了个远控,发现生成出来的exe都会被识别,可能是有人和我写的代码差不多,细想了一下,可能只有静态过不了,动态应该是可以过的,毕竟不可能巧到流 ...

  9. 「刷起来」Go必看的进阶面试题详解

    勤学如春起之苗,不见其增日有所长:辍学如磨刀之石,不见其损日有所亏. 本文的重点:逃逸分析.延迟语句.散列表.通道.接口. 1.逃逸分析 逃逸分析是Go语言中的一项重要优化技术,可以帮助程序减少内存分 ...

  10. 关于Java基础中的异常处理知识点

    Java中的异常(Exception),史上最全的教程来啦~_smilehappiness的博客-CSDN博客 以及Java:详解Java中的异常(Error与Exception)_王小二(海阔天空) ...