マルチプロジェクトオンライン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構成プロファイルから/etc/nginx/sites-availableへのプロファイルの書き込み
cd/etc/nginx/sites-available
新規サイトプロファイルのコピー
sudo cp default your.example.com.conf
sudo vim your.example.com.conf
構成開始
sudo cp default your.example2.com.conf
sudo vim your.example2.com.conf
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の簡単な構成が完了する. uwsgiの使用
Django構成
settingsファイルの変更
静的ファイルの収集
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プロジェクトで起動
環境設定
sudo apt-get install nginx
sudo apt-get install libpython3.6-dev
pip install uwsgi
データベース変更文字セット(中国語の挿入が便利)
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/*;
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
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
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 --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 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