マルチプロジェクトオンラインNginx+Django+uwsgi

3918 ワード

この記事の前提はdjangoプロジェクトのデバッグが完了したことです.
環境設定
  • nginxのインストール
    sudo apt-get install nginx
  • uwsgiのインストール
    sudo apt-get install libpython3.6-dev
    pip install uwsgi
    データベース変更文字セット(中国語の挿入が便利)
  • mysqlのプロファイルの変更
    cd/etc/mysql/mysql.conf.d
    sudo cp mysql.cnf mysql.cnf.Bak#修正前に1部準備
    sudo vim mysql.cnf
    [mysqld]で次の文を追加します.
    character_set_server = utf8
    サービスの保存と再起動
    sudo systemctl restart mysql.サービス#再起動サービス
    Nginx構成
           include /etc/nginx/sites-enabled/*;
    
  • プロファイルから/etc/nginx/sites-availableへのプロファイルの書き込み
    cd/etc/nginx/sites-available
    新規サイトプロファイルのコピー
    sudo cp default your.example.com.conf
    sudo vim your.example.com.conf
    構成開始
    server {
        listen 80;
        server_name blog.19950314nina.top;
        charset     utf-8;
        client_max_body_size 75M;
    
        location /static {  #            
            alias /home/guoxd/temp/myblog/;
        }
        
        location / {
            include     /etc/nginx/uwsgi_params;  #  uwsgi_params >  ,      >   ,    nginx        
            uwsgi_pass  127.0.0.1:8000;  #    uwsgi  
        }
    }
    
    マルチステーションなので、ここにもう1つのサイト構成を書きます
    sudo cp default your.example2.com.conf
    sudo vim your.example2.com.conf
    
    server {
        listen 80;
        server_name bt.19950314nina.top;
        charset     utf-8;
        client_max_body_size 75M;
    
        location /static {  #            
            alias /home/guoxd/temp/bt/;
        }
        
        location / {
            include     /etc/nginx/uwsgi_params;  #  uwsgi_params >  ,      >   ,    nginx        
            uwsgi_pass  127.0.0.1:8001;  #    uwsgi  
        }
    }
    
    静的ファイルを格納するフォルダの作成を開始します.まず作成し、次に使用します.
    mkdir -p/home/guoxd/temp/bt
    mkdir -p/home/guoxd/temp/myblog
    sites-enabledフォルダにソフト接続を作成し、構成を有効にします.
    cd/etc/nginx/sites-enabled
    sudo ln -s/etc/nginx/sites-available/your.example.com.conf your.example.com.conf
    sudo ln -s/etc/nginx/sites-available/your.example2.com.conf your.example2.com.conf
  • Nginxの使用
    sudo nginx-t#nginx構成が正しくテストされているかどうか
    nginx: the configuration file/etc/nginx/nginx.conf syntax is ok nginx: configuration file/etc/nginx/nginx.conf test is successful#出力この2つの文は、構成に問題がないことを示しています.
    sudo nginx-s reload#再起動サービスは構成を変更し、再起動後に有効になります.

  • ここまでnginxのサイト構成が完了しました
    Uwsgi構成
    私がテストしている間に、2つのdjangoプロジェクトのパスが
    /home/guoxd/testpro/project2
    /home/guoxd/testpro/project3
  • uwsgiプロファイル
  • プロジェクトディレクトリの下にuwsgiを新規作成します.iniプロファイル
    cd/home/guoxd/testpro/project2
    vim uwsgi.ini
    構成の開始
    [uwsgi]
    #                          
    socket=0.0.0.0:8001
    #     
    chdir=/home/guoxd/testpro/project2
    # wsgi   
    wsgi-file=project2/wsgi.py
    processes=4
    threads=2
    master=True
    pidfile=uwsgi.pid
    daemonize=uwsgi.log
    

    同様に別の項目でも同様の配置を行い、パスとポートを修正すればよい.
    ここまでuwsgiの簡単な構成が完了する.
  • uwsgiの使用
  • uwsgi --ini uwsgi.ini  #   
    uwsgi --stop uwsgi.pid  #   
    

    Django構成
    settingsファイルの変更
    # settings    
    DEBUG=False
    allow = ['*']
    
    #  settings    
    STATIC_ROOT = '/home/guoxd/temp/project2/bt' #    collectstatic       
    STATIC_URL = '/static/'
    # STATICFILES_DIRS   
    '''
    STATICFILES_DIRS =[
       os.path.join(BASE_DIR, 'static'),
    ]
    '''
    

    静的ファイルの収集
    python manage.py collectstatic
    収集が完了したら、nginxサイト構成時の対応する静的ファイルパスに静的ファイルをコピーします.
  • データベース
  • python manage.py makemigrations
    python manage.py migrate
    ここでmysqlのエクスポートとインポートのコマンドを記録します.
    mysqldump -u(username) -p(password) (database_name) (something).sql#エクスポートsqlデータベース
    例:mysqldump-uroot-p 123 bt bt.sql
    mysql -u(username) -p(password) --database (database_name) < (something).sql#データベースのインポート
    例:mysql-uroot-p 123--database bt開始
    djangoプロジェクトで起動
    uwsgi --ini uwsgi.ini