項目部署 uwsgi+nginx+crm

  • nginx + uwsgi + django + mysql
  1. 後端搞起python

    1. 上傳crm項目到linux服務器
    2. 安裝uwsgi命令,這是python的一個模塊
    pip3 install -i https://pypi.douban.com/simple  uwsgi
    1. 激活一個虛擬環境去使用
    source s21Django1/bin/activate  #激活
    virtualenv --no-site-packages --python=python3   s21uwsgi   #這是建立虛擬環境
  2. 使用uwsgi的命令,參數形式啓動 crm項目mysql

    1. 以往的python3 manage.py runserver 調用wsgiref去啓動django,性能很低,單進程web。使用uwsgi啓動django,能夠支持併發,多進程,以及日誌設置,多種功能。
    • 必須在django項目,第一層敲這個命令
    uwsgi --http :8000 --module mysite.wsgi
        --http 指定是http協議,去啓動項目
        --module  指定django目錄下的wsgi文件
    #這樣加載的 沒法加載靜態文件
    • uwsgi支持的熱加載命令
    uwsgi --http :9000 --module Aida_crm.wsgi   --py-autoreload=1
  3. uwsgi以配置文件的形式啓動 ,就是把你的啓動參數,寫入到一個文件中,而後,執行這個文件便可linux

    • 配置文件名字能夠叫作 uwsgi.ini ,內容以下,這個文件是手動生成的
      touch uwsgi.ini ,寫入以下內容
    [uwsgi]
    # Django-related settings
    # the base directory (full path)
    #填入項目的絕對路徑 ,項目的第一層路徑
    chdir           = /opt/s21/Aida_crm
    
    # Django's wsgi file
    #指定第二層項目下的wsgi文件
    module          = Aida_crm.wsgi
    
    # the virtualenv (full path)
    #找到虛擬環境的絕對路徑
    home            = /opt/s21/s21uwsgi
    
    
    # process-related settings
    # master
    master          = true
    
    # 以cpu核數來填寫,uwsgi的工做進程數
    processes       = 2
    
    # the socket (use the full path to be safe
    #這是以uwsgi_socket協議啓動的項目,沒法再去經過瀏覽器訪問,必須經過nginx以uwsgi協議去反向代理
    socket          = 0.0.0.0:8000
    
    #也能夠使用http協議去啓動(僅用做調試使用)
    #http = 0.0.0.0:9000
    # ... with appropriate permissions - may be needed
    # chmod-socket    = 664
    # clear environment on exit
    vacuum          = true
    
    #後臺運行參數,將uwsgi運行在後臺,而且將django日誌輸出到uwsgi.log中
    daemonize = uwsgi.log
  4. 指定配置文件啓動djangonginx

    uwsgi --ini  uwsgi.ini   #到這裏 配置文件生效 項目已經啓動 由於使用了socket 因此必須使用nginx反向代理
    1. nginx的配置 反向代理uwsgi
      • 修改nginx.conf以下(vim /opt/s21/tngx/conf/nginx.conf)
    server {
            listen       80;
            server_name  www.oldchouhuo.com;
            #charset koi8-r;
            #access_log  logs/host.access.log  main;
            #access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;
            location / {
            #轉發請求的方式配置在這裏
            #轉發請求的方式配置在這裏
            #轉發請求的方式配置在這裏
             include    uwsgi_params;
             uwsgi_pass 0.0.0.0:8000;
            }
         }
    1. 從新加載nginx,訪問nginx,查看是否反向代理
    去瀏覽器訪問nginx的地址,查看可否訪問到crm的內容
    #注意: 去將要訪問的電腦修改host host文件在
    c:windows/system32/driver/etc/hosts 
    添加  192.168.108.130  域名(www.oldchouhuo.com)
    1. 收集crm的全部靜態文件,丟給nginx去解析
    #對django的settings.py配置修改以下
    #添加以下參數
    STATIC_ROOT='/opt/s21static'                                                                                                                        
    
    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]
    
    執行命令,收集django的全部靜態文件,系統會自動建立'/opt/s21static'  這個文件夾
    python3 manage.py collectstatic
    1. 配置nginx,找到crm的這些靜態資源
    location / {
                 include    uwsgi_params;
                 uwsgi_pass 0.0.0.0:8000;
             }
            #添加一個location,針對nginx的url進行匹配處理
            #當請求時 www.oldchouhuo.com/static/.....  這樣的url的時候,nginx進行別名修改,去/opt/s21static底下去尋找資源文件                                                                                                       
            location  /static {
                alias /opt/s21static;
            }
相關文章
相關標籤/搜索