So stellen Sie Centos+Nginx+Uwsgi bereit, um das Django-Projekt zu starten

WBOY
Freigeben: 2023-05-15 08:13:13
nach vorne
1160 Leute haben es durchsucht

Mein Django-Projekt heißt yunwei. Die Hauptanwendungen sind rabc und web. Das gesamte Projekt wird wie folgt unter /opt/ abgelegt:

[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]#
Nach dem Login kopieren

So stellen Sie Centos+Nginx+Uwsgi bereit, um das Django-Projekt zu starten

/opt/yunwei/ ist das Stammverzeichnis meines Django-Projekts und verwaltet .py befindet sich in diesem Verzeichnis, es gibt ein gleichnamiges Unterverzeichnis yunwei unter /opt/yunwei/ und unten befindet sich eine Konfigurationsdatei Setting.py

Python-Installation

Wenn die verwendete Python-Version 2 ist, gibt es keine Sie müssen es neu installieren. Wenn es 3 ist, müssen Sie es neu installieren

Django-bezogene Bibliotheksinstallation

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

Legen Sie die Datei auf den Server, der bereitgestellt werden muss, und installieren Sie das Paket in der Datei

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

nginx-Installation und -Konfiguration ( Verarbeiten Sie statische Anfragen und dynamische Proxy-Anfragen an uwsgi Projektverzeichnis zum Speichern von uwsgi-bezogenen Dateien.

[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文件
        }

}
Nach dem Login kopieren

Erstellen Sie die Konfigurationsdatei

pip install uwsgi
Nach dem Login kopieren

Deaktivieren Sie den DEBUG-Modus von Setting.py im Titel.

cd /opt/yunwei/ && mkdir uwsgi
touch uwsgi/uwsgi.ini
Nach dem Login kopieren

Wenn der Debug-Modus „True“ ist, verarbeitet Django statische statische Anforderungen selbst. Jetzt verarbeitet Nginx diese Anforderungen selbst Fertig mit False

Für die oben genannten Schritte müssen Sie nur uwsgi und nginx starten. Greifen Sie über den Nginx-Listen-Port darauf zu. Die Protokolldatei von uwsgi befindet sich unter /opt/yunwei/uwsgi/uwsgi.log. Sie können es beenden über ss -tnulp |. grep uwsgi - 9 Prozess-ID, um den Prozess abzubrechen

[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
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo stellen Sie Centos+Nginx+Uwsgi bereit, um das Django-Projekt zu starten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage