top'eのDjangoプロジェクトを監視します

この記事では、一番上のサーバーで各Djangoプロジェクトからサーバーの負荷を確認できるようにDjangoを構成する方法について説明します。



1-DjangoをポートからFreeBSDにインストールする



サーバーにFreeBSD 8.0があります。MySQL、Python2.6、nginxなどのあらゆる種類のユーティリティが既にインストールされています。 Djangoをインストールする最も簡単な方法は、ポートの単純で平凡なインストールを選択したことです。

cd /usr/ports/www/py-django

make install clean







インストール中に、選択します

[X] POSTGRESQL PostgreSQL support

[X] MYSQL MySQL support

[X] FASTCGI FastCGI support







Django 1.3.1は/usr/local/lib/python2.6/site-packages/djangoにインストールされており、すぐに使用できます。

2-Djangoの準備



専門家は、プロジェクトを別のディレクトリに保存することをお勧めします(たとえば、/ wwwの隣の/ dataにユーザーがいます)。 私たちはプロの声に耳を傾け、ホスティングのユーザーのためにプロジェクトを投入します-それは悲鳴を上げています。

Djangoプロジェクトは次のパスに沿って実行されます-/ home / hostalot / data / django

このディレクトリでDjangoにシンボリックリンクを作成し、チェックします。

cd /home/hostalot/data/django

ln -s /usr/local/lib/python2.6/site-packages/django django

python

>>> import django

>>> exit()







3-新しいプロジェクトを作成する



サイトhostalot.ruのDjangoプロジェクトを作成しましょう。ポイントは使用できないため、アンダースコア-hostalot_ruに置き換えます。

同時に、その瞬間を見逃して、静的変数を含むディレクトリを作成します。これは、その後nginxによって直接駆動されます(詳細は以下を参照)。

python django/bin/django-admin.py startproject hostalot_ru

mkdir /home/hostalot/data/django/hostalot_ru/media







新しいプロジェクトの設定ファイル(/home/hostalot/data/django/hostalot_ru/settings.py)で、設定を必ず編集します。

4-Djangoプロジェクトの実行



実行可能ファイル/ usr / local / bin / hostalot_ruを作成します

#!/usr/local/bin/bash

exec -a hostalot_ru /usr/local/bin/python $1 $2 $3 $4 $5 $6 $7







次に、/ usr / local / etc / rc.d / hostalot_ruを作成します

#!/usr/local/bin/bash

# Replace these three settings.

. /etc/rc.subr

name=hostalot_ru # your project name

rcvar=`set_rcvar`

load_rc_config $name

PROJDIR="/home/hostalot/data/django/$name"

PIDFILE="$PROJDIR/$name.pid"

HOST="127.0.0.1" # local

PORT="9010" # may be any foreach 9010-9900

METHOD="threaded" # may be "pre fork"

command=/usr/local/bin/$name

command_args=" $PROJDIR/manage.py runfcgi method=$METHOD host=$HOST port=$PORT pidfile=$PIDFILE"

run_rc_command "$1"







これらのファイルに実行許可を与えることを忘れないでください:

chmod 555 /usr/local/bin/hostalot_ru

chmod 555 /usr/local/etc/rc.d/hostalot_ru







プロジェクトの自動実行を/etc/rc.confに追加します。

hostalot_ru_enable="YES"







Djangoのデータベースを同期し、プロジェクトを実行する選択されたデーモンを開始します。

cd /home/hostalot/data/django/hostalot_ru

python ./manage.py syncdb

/usr/local/etc/rc.d/hostalot_ru restart







Nginx設定



Django / usr / local / etc / nginx / django_fastcgiのnginx fastcgi設定でファイルを作成します。

fastcgi_pass_header Authorization;

fastcgi_intercept_errors off;

fastcgi_param PATH_INFO $fastcgi_script_name;

fastcgi_param REQUEST_ruTHOD $request_ruthod;

fastcgi_param QUERY_STRING $query_string;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SERVER_PORT $server_port;

fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param SERVER_NAME $server_name;

fastcgi_param REQUEST_URI $request_uri;

fastcgi_param DOCUMENT_URI $document_uri;

fastcgi_param DOCUMENT_ROOT $document_root;

fastcgi_param SERVER_ADDR $server_addr;

fastcgi_param REMOTE_USER $remote_user;

fastcgi_param REMOTE_ADDR $remote_addr;

fastcgi_param REMOTE_PORT $remote_port;

fastcgi_param SERVER_SOFTWARE "nginx";

fastcgi_param GATEWAY_INTERFACE "CGI/1.1";







ドメイン構成ファイル/usr/local/etc/nginx/confs/hostalot_ru.confを作成します。

server {

listen 193.106.172.16:80;

server_name hostalot.ru;

set $proot "/home/hostalot/data/django/hostalot_ru/media";

location / {

fastcgi_pass 127.0.0.1:9010;

include django_fastcgi;

client_max_body_size 120m;

access_log main;

error_log main;

root $proot;

}

location ~* ^/.+\.(htm|swf|flv|xml|ico|jpg|jpeg|js|css|png|gif|mpg|avi|mp3|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|rtf|mpeg)$ {

root $proot;

limit_rate 2000K;

access_log off;

}

}







nginxを再起動します。

/usr/local/etc/rc.d/nginx restart









合計:各Djangoプロジェクトには独自のデーモンがあり、上部にサフィックスが付いています。すべての統計はnginxによってキャッシュされます。



All Articles