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

原文地址: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.ini

uwsgi.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.log

chdir为django项目根地址,socket为django启动服务器的ip地址,daemonize为日志地址。注意,每个django项目中自动生成一个mysite1/wsgi.py文件。

接下来cd 到 uWSGI 配置文件所在目录,执行以下代码即可:

uwsgi --ini uwsgi.ini

uWSGI的运行说明

1,无论是启动还是关闭,都要执行ps aux|grep 'uwsgi'确认是否符合预期

2,当uwsgi启动后,当前django项目的程序已变成后台守护进程,在关闭当前终端时此进程也不会停止

3,启动成功后,进程在后台执行,所有日志均输出在配置文件所在目录的uwsgi.log

4,Django中代码有任何修改,都需要重启uwsgi(重启即为先关闭,再开启)

配置好uwsgi服务后,还需要进一步配置nginx服务器,原因见为什么有了uwsgi 还要 nginx 服务器?Nginx服务器反向代理。为了更高的加密性,我们可以使用nginx配置HTTPS协议。以下我们以腾讯云服务器为例,通过nginx配置HTTPS:

首先找到/etc/nginx/conf.d,然后创建新文件django_nginx.conf

sudo 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

欢迎关注公众号,定期更新原创趣味内容
弦圈(manitori.xyz)公众号

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
uwsgi + nginx是一种常见的服务器架构,用于部署Python Web应用程序。uwsgi是一个Web服务器,它可以处理Python应用程序的请求,并将其传递给后端的应用程序。nginx是一个高性能的反向代理服务器,它可以接收客户端的请求,并将其转发给uwsgi服务器处理。 在配置uwsginginx时,需要进行以下步骤: 1. 首先,确保uwsgi已经启动并正在运行。可以使用命令"ps aux | grep uwsgi.ini"来查看uwsgi进程是否在运行。\[1\] 2. 如果需要停止uwsgi进程,可以使用命令"uwsgi --stop uwsgi.pid"来停止运行。如果需要重新加载uwsgi配置文件,可以使用命令"uwsgi --reload uwsgi.pid"。\[1\] 3. 安装nginx,并验证nginx的配置文件是否正确。可以使用命令"nginx -t"来验证nginx的配置文件是否正确。\[2\] 4. 修改uwsgi的配置文件,将uwsginginx连接的IP地址和端口配置为正确的值。\[3\] 5. 修改nginx的配置文件,将请求转发给uwsgi服务器处理。可以使用以下配置将请求转发给uwsgi服务器: ``` server { location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; } } ``` 6. 如果需要配置静态文件的访问,可以在nginx的配置文件中添加以下配置: ``` location /static { alias /var/www/static/; } ``` 这样,当访问/static路径时,nginx会将请求转发到指定的静态文件目录。 总结起来,uwsgi + nginx是一种常见的服务器架构,用于部署Python Web应用程序。uwsgi处理Python应用程序的请求,而nginx作为反向代理服务器将请求转发给uwsgi服务器处理,并可以配置静态文件的访问。 #### 引用[.reference_title] - *1* *2* [uwsgi + nginx 部署Django 项目](https://blog.csdn.net/yuelai_217/article/details/129861924)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Nginx+uWSGI部署](https://blog.csdn.net/qq_41341757/article/details/113825603)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值