zoukankan      html  css  js  c++  java
  • uWSGI+Django+nginx部署过程

    原文链接:https://blog.csdn.net/c465869935/article/details/53242126

    项目流程:

    1.客户端请求服务资源。

    2.nginx作为对外暴露的服务接口,获取http请求,进行解包分析。

    3.如果是静态文件请求如/static/或者/media/等,就会请求nginx配置的静态文件目录,返回请求资源。

    4.如果是动态请求,则会根据配置文件转发给uWSGI,uWSGI处理接收到的请求并转发给wsgi。

    5.wsgi根据请求调用django工程的某个文件或函数,处理完后django将返回值交给wsgi。

    6.wsgi再传给uWSGI,再传给nginx,最后传到客户端。

    安装部署流程:

    一.安装uWSGI并测试

    1.安装:

    pip3 install uwsgi

    或者通过豆瓣源更快安装

    pip3 install -i https://pypi.douban.com/simple uwsgi

    2.新建test.py文件,代码如下:

    def application(env, start_response): 
        start_response('200 OK', [('Content-Type','text/html')]) 
        return [r("Hello World")]

    3.终端输入

    sudo uwsgi --http :8000 --wsgi-file test.py

    打开浏览器输入localhost:8000,看到Hello World表示安装成功。

    二.写配置文件:uwsgi.ini和mysite.conf

    1.找到nginx配置文件目录

    nginx -t
    # 配置文件目录
    nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

    工程目录为/Users/dabao/uwsgi/mysite。将/usr/local/etc/nginx/mime.types文件拷贝到项目根目录下新建mime.types;

    在自己的工程目录下建立mysite.conf文件,并将nginx默认配置文件nginx.conf内容复制到mysite.conf中,并将server部分替换为下面内容:

    server {
      # 监听的端口号和ip地址 listen
    80; server_name localhost; charset utf-8;
      # 访问日志 access_log
    /Users/dabao/uwsgi/mysite/nginx_access.log;
      # 错误日志 error_log
    /Users/dabao/uwsgi/mysite/nginx_error.log; client_max_body_size 75M;   # 设置访问/static/和/media/时静态文件路径 location /static { alias /Users/dabao/uwsgi/mysite/static; } location /media { alias /Users/dabao/uwsgi/mysite/media; }   # 设置访问根目录时的路径 location / { include /usr/local/etc/nginx/uwsgi_params; uwsgi_pass 127.0.0.1:9898; } }

    2.在django工程目录下新建uwsgi.ini文件

    [uwsgi]
    socket = 127.0.0.1:9898
    # 工程目录
    chdir=/Users/dabao/uwsgi/mysite/
    # wsgi.py文件
    module=mysite.wsgi master = true
    # 线程和进程数 processes
    =2 threads=2 max-requests=2000 chmod-socket=664 vacuum=true
    # log日志 daemonize
    = /Users/dabao/uwsgi/mysite/uwsgi.log
    # 进程状态
    stats=%(chdir)/uwsgi.status
    # 记录pid号
    pidfile=%(chdir)/uwsgi.pid
    # the virtualenv (full path) 
    #
    home = /path/to/virtualenv

    3.在工程目录下启动uWSGI,要使用sudo,不然可能会报错。

    sudo uwsgi --ini uwsgi.ini
    [uWSGI] getting INI configuration from uwsgi.ini

    如果显示如上结果表示启动成功,如果要停止服务可以使用下面命令,uwsgi.pid会记录当前运行的master进程的pid:

    sudo uwsgi --stop uwsgi.pid

    4.nginx使用django目录下的配置文件启动

    # 启动
    nginx -c /Users/dabao/uwsgi/mysite/mysite.conf
    # 停止
    nginx -s stop
    # 重启
    nginx -s reload

    客户端访问

    在/Users/dabao/uwsgi/mysite/static/中放入图片default.jpg

    浏览器输入localhost/static/default.jpg,访问静态文件:

     输入localhost/index/,访问动态数据:

    uWSGI+Django+nginx的简单的部署过程成功啦。

  • 相关阅读:
    数据库各类模板
    React+Cesium安装部署
    VS2019+QT 制作自定义控件
    Vue+arcgis(1)
    将TIF/PNG等转为GeoTIFF
    QT 同名信号无法识别的问题
    VSCode配置PyQt5
    Python中类属性和self属性的区别
    postgresql的数据复制
    在windows server 2012 R2上搭建nginx环境
  • 原文地址:https://www.cnblogs.com/bzsszhao/p/12560130.html
Copyright © 2011-2022 走看看