Centos7 部署Django项目 uwsgi + nginx

2023-08-01,,

启动

首先确保你的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的相关教程结束。

《Centos7 部署Django项目 uwsgi + nginx.doc》

下载本文的Word格式文档,以方便收藏与打印。