当前位置: 首页 > news >正文

采用Nginx+uWSGI部署Django项目

第一步:安装uWSGI
注意:
1)在系统环境安装,非虚拟环境
2)使用对应python版本安装
3)要先安装python开发包

root@iZwz98z8juypkzatn41qjbZ:~# pip3 install uwsgi
第二步:测试uwsgi是否正常
  1. 在/home下新建test.py 文件,内容如下
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]
  1. 在终端下运行

    # 注意:需要开启端口才可以正常访问
    uwsgi --http :8001 --wsgi-file test.py
    
第三步:用uwsgi的http协议访问django写的网站
# 执行命令可以测试自己的项目
uwsgi --http :8001 --chdir /home/mysite --home /home/mysite_env --module mysite.wsgi:application

启动成功后,就能使用ip+端口号访问到自己的网站了;但是发现样式全都不见了;接下来就用Nginx来处理

第四步:安装Nginx
apt-get update
apt-get install nginx
# 如果当前用户不是root用户,在命令前加 sudo
第五步:配置Nginx
## 查看sites-enabled目录下的软连接(default)
root@iZwz98z8juypkzatn41qjbZ:/etc/nginx/sites-enabled# ls
default
## 删除sites-enabled目录下的软连接(default)
root@iZwz98z8juypkzatn41qjbZ:/etc/nginx/sites-enabled# rm default 
root@iZwz98z8juypkzatn41qjbZ:/etc/nginx/sites-enabled# ls

## 查看sites-available可用目录
root@iZwz98z8juypkzatn41qjbZ:/etc/nginx/sites-available# ls
default
## 在sites-available可用目录下新建一个mysite.conf文件
root@iZwz98z8juypkzatn41qjbZ:/etc/nginx/sites-available# vim mysite.conf

mysite.conf的配置:

server {
    listen 80;	# 监听端口
    server_name mysite;
    charset utf-8;	# 编码集

	# 客户端大小
    client_max_body_size 75M;

	# 静态文件的相关目录
    location /static {
        alias /home/mysite/static;
    }

	# 上传文件的目录
    location /media {
        alias /home/mysite/media;
    }

	# 动态链接需转发到uwsgi
    location / {
        uwsgi_pass 127.0.0.1:8001;
        include /etc/nginx/uwsgi_params;
    }
}

设置软链接到sites-enabled

root@iZwz98z8juypkzatn41qjbZ:/etc/nginx# ln -s /etc/nginx/sites-available/mysite.conf /etc/nginx/sites-enabled/mysite.conf

查看Nginx是否有问题: nginx -t

root@iZwz98z8juypkzatn41qjbZ:/etc/nginx# nginx -t
# 出现如下是没问题的
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启Nginx: service nginx restart

root@iZwz98z8juypkzatn41qjbZ:/etc/nginx# service nginx restart

回到/home目录下创建mysite_uwsgi目录,用于管理uwsgi的相关文件;在mysite_uwsgi的目录下创建mysite.ini

mkdir mysite_uwsgi
vim mysite.ini

mysite.ini的配置

[uwsgi]
# 项目的目录
chdir = /home/mysite
# 虚拟环境目录
home = /home/mysite_env
module = mysite.wsgi:application

# 启动的主程序
master = True
# 进程数
processes = 4
# 每个请求的超时时间
harakiri = 60
# 最大的请求
max-requests = 5000

socket = 127.0.0.1:8001
uid = 1000
gid = 2000

# 启动主进程
pidfile = /home/mysite_uwsgi/master.pid
# 后台运行
daemonize = /home/mysite_uwsgi/mysite.log
# 服务器退出自动回收
vacuum = True
启动uwsgi
uwsgi --ini /home/mysite_uwsgi/mysite.ini

查看uwsgi进程

ps -aux | grep uwsgi
其他参考
正常关闭uwsgi进程:uwsgi --stop /home/mysite_uwsgi/master.pid
强制关闭全部uwsgi进程:ps -aux | grep uwsgi |awk '{print $2}'|xargs kill -9
重新加载uwsgi:uwsgi --reload /home/mysite_uwsgi/master.pid
参考文档
(Django官网)https://docs.djangoproject.com/en/2.1/howto/deployment/wsgi/uwsgi/
(uwsgi中文)https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/tutorials/Django_and_nginx.html
(uwsgi英文)https://uwsgi.readthedocs.io/en/latest/tutorials/Django_and_nginx.html
(自强学堂)https://code.ziqiangxuetang.com/django/django-nginx-deploy.html

我的博客地址:https://xt998.github.io/

相关文章:

  • Hexo Next主题中集成gitalk评论系统
  • Django对符合条件的值求和和分组求和(aggregate)
  • navicat 连接远程数据库,出现2013错误并完美解决
  • Windows 10的中文用户名怎么改成英文?
  • VirtualBox安装Centos7
  • CentOS 7 开启ssh服务
  • jquery之弹框
  • Python3.7上安装Django1.11启动报错
  • Curler 超简单免费网站监测工具,30秒轻松完成相关设定
  • Jquery实现简单的点击展开和收起
  • CenOS 7下安装jdk 8
  • CentOS 7 上安装Nginx
  • Intellij IDEA 2018用快捷键自动生成序列化id
  • Vue packags version mismatch
  • Spring Boot发送邮件(使用Thymeleaf模板)
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Bootstrap JS插件Alert源码分析
  • export和import的用法总结
  • Git同步原始仓库到Fork仓库中
  • javascript 总结(常用工具类的封装)
  • Javascript编码规范
  • Promise面试题2实现异步串行执行
  • vue2.0项目引入element-ui
  • WePY 在小程序性能调优上做出的探究
  • 安装python包到指定虚拟环境
  • 基于axios的vue插件,让http请求更简单
  • 讲清楚之javascript作用域
  • 事件委托的小应用
  • 手写双向链表LinkedList的几个常用功能
  • 突破自己的技术思维
  • 原生js练习题---第五课
  • ​​​​​​​​​​​​​​Γ函数
  • ​如何在iOS手机上查看应用日志
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (利用IDEA+Maven)定制属于自己的jar包
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (三)mysql_MYSQL(三)
  • (四)模仿学习-完成后台管理页面查询
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net打印*三角形
  • .net下简单快捷的数值高低位切换
  • .NET中使用Protobuffer 实现序列化和反序列化
  • @javax.ws.rs Webservice注解
  • @SentinelResource详解
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [4.9福建四校联考]
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [BUUCTF]-Reverse:reverse3解析
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)
  • [ESP32 IDF]web server
  • [IDF]啥?
  • [Invalid postback or callback argument]昨晚调试程序时出现的问题,MARK一下