• liunx 项目发布(django + uwsgi + nginx+supervisor发布web服务器)


    创建一个新的虚拟环境

      mkvirtualenv my_django002

      which 查看自己是否在虚拟环境

      

      pip3下载django1.11.14

      在自己的Envs文件下创建一个django项目

      (my_django002) [root@VM_0_12_centos my_django002]# django-admin startproject mysite15

      启动测试一下 

      准备完成

    不使用Python3 启动项目

    使用uwsgi启动

    1.先下载 uwsgi

      pip3 install uwsgi

      下载完成后可以使用uwsgi测试下

      先创建一个 text.py文件 写入一下内容:

        def application(env, start_response):
          start_response('200 OK', [('Content-Type','text/html')])
          return [b"Hello World,im uwsgi....."] # python3

      用uwsgi启动一下   uwsgi --http  :8000  --wsgi-file text.py   返回结果字符串

    2.编写一个hello测试视图
      from django.shortcuts import HttpResponse
        def hello(request):
          return HttpResponse('hello , im uwsgi.....')
      加上url视图
       urlpatterns = [
          url(r'^admin/', admin.site.urls),
          url(r'^hello/',hello),
       ]

    3.通过uwsgi启动你的django项目

      1.进入你的django项目,这是第一层
      cd /root/Envs/django15/mysite15
      2.通过命令启动
      uwsgi --http :9000 --module mysite15.wsgi
      3.测试访问你的django应用 9000端口
    4.注意,此时你的项目丢失静态文件,因为uwsgi不解析静态文件配置  使用nginx

    uwsgi热加载django程序           

    自动重启    --py-autoreload=1

    1.启动命令添加一条参数
    uwsgi --http :8088 --module mysite.wsgi --py-autoreload=1

    配置静态资源

    1. 修改nginx  配置文件  之后一定要重启!!!!!!!!

      

    2. 启动项目

        uwsgi --http :9000  --module mysite.wsgi --py-autoreload=1  

       

      有坑出错 --

      在这里使用  一定要在这个文件目录下启动!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

           uwsgi --socket :9000 --module mysite15.wsgi --py-autoreload=1

      当然执行后 还是么有 静态文件

       继续配置 nginx的配置:

      写入静态文件存放的位子

         #nginx处理静态页面资源

      location /static{
        alias /opt/nginx1-12/static/django;   
    }

       OK  创建这个文件夹

      在django的配置文件中写入

      

      这个路径一定要和 alias 路径一至

          回到manage.py 目录   执行python3 manage.py collectstatic   他会把所有静态文件放在我 配置的目录下

      此时 django 目录下就会多出 admin的静态文件

       

      启动你的项目 此时admin的静态文件已经出现啦

      之前一定要记得修改nginx目录完成后重启 nginx  

    uwsgi配置文件

    [uwsgi]
    #使用nginx连接时使用
    socket=0.0.0.0:9000
    #不用nginx直接当做web服务器使用
    #http=0.0.0.0:9000
    #项目目录绝对路径
    chdir=/root/Envs/my_django002/mysite15
    #wsgi文件路径,在项目底下
    wsgi-file=mysite15/wsgi.py

    #指定解释器目录
    home=/root/Envs/my_django002
    processes=4
    threads=2
    master=True
    pidfile=uwsgi.pid

    这时你的项目目录

     怎样启动 ~~~

      uwsgi --ini /etc/uwsgi.ini    启动配置文件

    supervisor

      控制管理你的项目启动或重启的  

        supervisor 是基于 python 的任务管理工具,用来自动运行各种后台任务,当然你也能直接利用 nohup 命令使任务自动后台运行,但如果要重启任务, 每次都自己手动 kill 掉任务进程,这样很繁琐,而且一旦程序错误导致进程退出的话,系统也无法自动重载任务。

    1.先退出你的虚拟环境 ~       deactivate

    2.执行下载

      easy_install supervisor

    3.通过命令生成supervisor的配支文件    echo_supervisord_conf    这时他给你生产的命令   

        echo_supervisord_conf > /etc/supervisord.conf

    4. 进入到 /etc/supervisord.conf文件下 写入

    [program:mydjango]
    command=/root/Envs/my_django002/bin/uwsgi --ini /etc/uwsgi.ini      

    # /root/Envs/my_django002/bin/uwsgi这个是你的虚拟环境的uwsgi

    #  /etc/uwsgi.ini 这个是你配置文件的uwsgi

    5.最后启动supervisor,完成uWSGI启动django

    [root@VM_0_12_centos mysite15]#   supervisord -c /etc/supervisord.conf

    操作方法

      supervisorctl        查看自己管理的项目 并 进入到你的supervisor 命令环境

      stop  mydjango     是你在/etc/supervisord.conf文件[program:mydjango]  这个名字 停止你的项目

           start   mydjango    开启你的项目

    负载均衡

  • 相关阅读:
    从零开始,开发一个 Web Office 套件(8):状态管理 & 拖动鼠标选中文字
    从零开始,开发一个 Web Office 套件(9):拖动鼠标选中文字 Edge Case
    从零开始, 开发一个 Web Office 套件 (1): 富文本编辑器
    从零开始,开发一个 Web Office 套件(6):光标 & Click 事件
    20211912 202120222 《网络攻防实践》第一周作业
    3天实践亲测简约靠谱Win10linux子系统Ubuntu下显示图形界面搭建固定IP远程服务器
    安卓通知转发
    RocketMQ(8) 消费幂等
    RocketMQ(5) 订阅关系的一致性规范
    RocketMQ(10) 消息类型
  • 原文地址:https://www.cnblogs.com/luchenhui/p/9960525.html
Copyright © 2020-2023  润新知