Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk menggunakan centos+nginx+uwsgi untuk melancarkan projek django

Bagaimana untuk menggunakan centos+nginx+uwsgi untuk melancarkan projek django

WBOY
WBOYke hadapan
2023-05-15 08:13:131139semak imbas

Projek Django saya dipanggil yunwei Apl utama adalah rabc dan web Keseluruhan projek diletakkan di bawah /opt/
seperti berikut:

[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]#

Bagaimana untuk menggunakan centos+nginx+uwsgi untuk melancarkan projek django

/. opt/yunwei/ ialah Direktori akar projek django saya, manage.py berada dalam direktori ini, terdapat subdirektori yunwei dengan nama yang sama di bawah /opt/yunwei/, dan terdapat fail konfigurasi setting.py di bawah

Pemasangan Python

Jika versi python yang digunakan ialah 2, tidak perlu memasangnya semula Jika 3, maka anda perlu memasangnya semula

Pemasangan perpustakaan berkaitan Django.

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

Letakkan fail di tempat yang anda perlu gunakan pada pelayan, dan pasang pakej dalam fail

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

pemasangan & konfigurasi nginx (memproses permintaan statik dan memproksi permintaan dinamik kepada uwsgi)

rujukan pemasangan nginx: nginx pemasangan linux

Fail konfigurasi nginx adalah seperti berikut

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

}

pemasangan & konfigurasi uwsgi

pip install uwsgi

Buat direktori uwsgi dalam /opt /yunwei/ di bawah direktori projek django untuk menyimpan fail berkaitan uwsgi.

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

Buat fail konfigurasi

[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

Tajuk mematikan mod DEBUG bagi tetapan.py

vim /opt/yunwei/yunwei/setting.py

DEBUG = True #改为 DEBUG = False

Apabila mod nyahpepijat adalah Benar, django akan mengendalikan permintaan statik statik dengan sendirinya , kini ia adalah nginx Untuk mengendalikan permintaan ini, jadi Palsu

Selepas melengkapkan langkah di atas, anda hanya perlu memulakan uwsgi dan nginx, dan mengakses fail log

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

uwsgi in /opt /yunwei melalui port dengar nginx /uwsgi/uwsgi.log

Anda boleh menggunakan ss -tnulp | grep uwsgi untuk membunuh -9 proses ID untuk mematikan proses

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

Atas ialah kandungan terperinci Bagaimana untuk menggunakan centos+nginx+uwsgi untuk melancarkan projek django. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam