Maison  >  Article  >  Opération et maintenance  >  Comment déployer centos+nginx+uwsgi pour lancer le projet Django

Comment déployer centos+nginx+uwsgi pour lancer le projet Django

WBOY
WBOYavant
2023-05-15 08:13:131162parcourir

Mon projet Django s'appelle yunwei. Les principales applications sont rabc et web. L'ensemble du projet est placé sous /opt/ comme suit :

[root@test-code opt]# ls
django_virt  nginx  redis  redis-6.2.6  yunwei
[root@test-code opt]# ls yunwei/
manage.py  rbac  static  templates  uwsgi  web  yunwei
[root@test-code opt]# ls yunwei/uwsgi/
cut_log.sh  log  uwsgi.ini  uwsgi.log  uwsgi.pid  uwsgi.sock
[root@test-code opt]#

Comment déployer centos+nginx+uwsgi pour lancer le projet Django

/opt/yunwei/ est le répertoire racine de mon projet Django, et gère. .py est dans ce répertoire, il y a un sous-répertoire yunwei avec le même nom sous /opt/yunwei/, et il y a un fichier de configuration settings.py ci-dessous

Installation de Python

Si la version de python utilisée est 2, il n'y a pas besoin de le réinstaller, s'il est 3, alors besoin de réinstaller

Installation de la bibliothèque associée à Django

#在原项目处导出django项目安装的库存入文件
pip freeze > install.txt

Placez le fichier sur le serveur qui doit être déployé et installez le package dans le fichier

#在待部署的服务器上执行
pip install -r install.txt

installation et configuration de Nginx ( traiter les requêtes statiques et les requêtes dynamiques de proxy vers uwsgi)

nginx Référence d'installation : Installation Linux nginx

Le fichier de configuration de nginx est le suivant

[root@test-code opt]# cat /opt/nginx/conf.d/django.conf 
server {
       listen 8881;
       server_name localhost;
       server_tokens off;       
    location /static {
                root  /opt/yunwei;
                index  index.html index.htm;
                }
    location / {
            include uwsgi_params; #nginx加载uwsgi模块
            uwsgi_buffer_size 16k;
            uwsgi_busy_buffers_size 24k;
            #如果你后端的需要超过60秒时间处理请求,那么一定要加上下面三个超时时间的设置,不然60s之后nginx断开链接报超时
            uwsgi_send_timeout 600;        # 指定向uWSGI传送请求的超时时间,完成握手后向uWSGI传送请求的超时时间。
            uwsgi_connect_timeout 600;   # 指定连接到后端uWSGI的超时时间。
            uwsgi_read_timeout 600;        # 指定接收uWSGI应答的超时时间,完成握手后接收uWSGI应答的超时时间。 
            uwsgi_pass unix:/opt/yunwei/uwsgi/uwsgi.sock; #nginx对应的uwsgi socket文件
        }

}

installation et configuration de uwsgi

pip install uwsgi

Créez un répertoire uwsgi sous /opt/yunwei/ dans le django répertoire du projet pour stocker les fichiers liés à uwsgi.

cd /opt/yunwei/ && mkdir uwsgi
touch uwsgi/uwsgi.ini

Créez le fichier de configuration

[root@test-code yunwei]# cat uwsgi/uwsgi.ini 
[uwsgi]
#django项目的根目录,即manage.py所在的目录
chdir=/opt/yunwei
#django项目的wsgi,yuwnei的项目名
module=yunwei.wsgi:application
socket=/opt/yunwei/uwsgi/uwsgi.sock
#这里是我的python虚拟环境,可以不配置
home=/opt/django_virt
#进程数
workers=5
#pid文件路径
pidfile=/opt/yunwei/uwsgi/uwsgi.pid
#IP端口
socket = 0.0.0.0:8000
master=true
#退出清理文件
vacuum=true
#启用线程
enable-threads=true
#序列化接受的内容,如果可能的话
thunder-lock=true
#设置自中断时间,如果后端处理一些请求时间比较长,这个一定要设置大一点
harakiri=3600 #
socket-timeout=3600 #这个是和nginx搭配部署时的设置
http-timeout=3600 #这个是单独部署时的设置
#设置缓冲
post-buffering=65535
buffer-size = 6553600
#后台守护方式运行,日志路径
daemonize=/opt/yunwei/uwsgi/uwsgi.log

Désactivez le mode DEBUG de settings.py dans le titre

vim /opt/yunwei/yunwei/setting.py

DEBUG = True #改为 DEBUG = False

Lorsque le mode de débogage est True, Django gérera lui-même les requêtes statiques statiques. Désormais, nginx gère ces requêtes, c'est donc le cas. fait avec False

Pour les étapes ci-dessus, il vous suffit de démarrer uwsgi et nginx. Accédez-y via le port d'écoute nginx

#uwsgi 启动命令 
uwsgi --ini /opt/yunwei/uwsgi/uwsgi.ini
#uwsgi 重启命令 
uwsgi --reload /opt/yunwei/uwsgi/uwsgi.ini

Le fichier journal de uwsgi se trouve dans /opt/yunwei/uwsgi/uwsgi.log

Vous pouvez le tuer. via ss -tnulp | grep uwsgi - 9 ID de processus pour tuer le processus

#启动nginx
nginx
#重启
nginx -s reload
#关闭
nginx -s stop
#检测配置文件是否正确
nginx -t

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer