Uwsgi

相关内容

Djano云服务器部署 uwsgi+nginx+https部署

Django启动服务器的命令runserver,其实也是启动了一个自带的uwsgi服务。如果想要一直在后台不停的运行django项目,需要部署uwsgi服务器。uwsgi安装官方文档:安装uWSGI — uWSGI 2.0 文档 (uwsgi-docs-zh.readthedocs.io)可以直接用pip安装uwsgi:pip install uwsgi在django项目根地址,即跟manage.py同目录下新建配置文件uwsgi.ini,如:mysite1/uwsgi.iniuwsgi.ini必须以[uwsgi]开头,内容如下:[uwsgi] chdir=/mysite1 module=mysite1.wsgi:application socket=127.0.0.1:8000 master=True pidfile=uwsgi.pid vacuum=True max-requests=5000 daemonize=uwsgi.logchdir为django项目根地址,socket为django启动服务器的ip地址,daemonize为日志地址。注意,每个django项目中自动生成一个mysite1/wsgi.py文件。接下来cd 到 uWSGI 配置文件所在目录,执行以下代码即可:uwsgi --ini uwsgi.iniuWSGI的运行说明无论是启动还是关闭,都要执行ps aux|grep 'uwsgi’确认是否符合预期当uwsgi启动后,当前django项目的程序已变成后台守护进程,在关闭当前终端时此进程也不会停止启动成功后,进程在后台执行,所有日志均输出在配置文件所在目录的uwsgi.log中Django中代码有任何修改,都需要重启uwsgi(重启即为先关闭,再开启)配置好uwsgi服务后,还需要进一步配置nginx服务器,原因见为什么有了uwsgi 还要 nginx 服务器?和Nginx服务器反向代理。为了更高的加密性,我们可以使用nginx配置HTTPS协议。以下我们以腾讯云服务器为例,通过nginx配置HTTPS:首先找到/etc/nginx/conf.d,然后创建新文件django_nginx.confsudo vim django_nginx.conf接下来输入以下设置# 这种写法比较方便配合负载均衡 upstream backend { # 这里的IP端口即Django项目的IP端口 server 127.0.0.1:8000; # 如果uwsgi使用的本地文件,此处写法参考 # server unix:/path/to/your/mysite/mysite.sock; } server { listen 443 ssl; autoindex on; client_max_body_size 1024m; #请填写绑定证书的域名 server_name example.com; #请填写证书文件的相对路径或绝对路径 ssl_certificate example.com_bundle.crt; #请填写私钥文件的相对路径或绝对路径 ssl_certificate_key example.com.key; ssl_session_timeout 5m; #请按照以下协议配置 ssl_protocols TLSv1.2 TLSv1.3; #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; location /static { alias /path/to/your/mysite/static/; } location / { include uwsgi_params; uwsgi_pass backend; } }最后重新加载nginx,就大功告成啦!sudo nginx -s reload
2024-05-15 10:46:48