zoukankan      html  css  js  c++  java
  • 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    开启你的项目

    负载均衡

  • 相关阅读:
    如何根据w3wp.exe的进程pid查看是哪个应用程序池
    Wpf从资源中重用UI元素
    Project not selected to build for this solution configuration.
    wpf 只在window是ShowDialog打开时才设置DialogResult
    Stop a hung service 关闭一个无响应的windows 服务
    调用windows api 获取系统分辨率
    PHP7中session_start 使用注意事项,会导致浏览器刷时页面数据不更新
    form表单清空、重置
    php用户注册常用检测、写入
    搜索条件两个时间,通过php数组排序,保证select语句between时间 前小后大
  • 原文地址:https://www.cnblogs.com/luchenhui/p/9960525.html
Copyright © 2011-2022 走看看