ホームページ >バックエンド開発 >PHPチュートリアル >nginx+apache+mysql+php+memcached+squidクラスタWeb環境(1/6)_PHPチュートリアル
| ===> |リバースプロキシ/キャッシュ| |データベースチュートリアル|
-------- ---------- ---------- --- ---------- -------- - --
nginx、squid、apache、php、mysqlのチュートリアル
eaccelerator/memcache の準備:
参考サーバー: intel(r) xeon(tm) cpu 3.00ghz * 2、2gb mem、scisc ハードドライブ
オペレーティングシステム
: centos4.4、カーネルバージョン2.6.9-22.elsmp、gccバージョン3.4.4
ソフトウェア:
apache 2.2.3 (mpm モードを使用可能)
php 5.2.0 (5.2.0 のエンジン
が比較的効率的であるため、このバージョンが選択されました)
eaccelerator 0.9.5 (php エンジンを高速化し、php ソースプログラムを暗号化することもできます)
memcache 1.2.0 (よく使用されるデータのキャッシュ用)
libevent 1.2a (memcache 動作メカニズムに必要)
mysql 5.0.27 (コンパイル作業を節約するためにバイナリバージョンを使用)
nginx 0.5.4 (ロードバランサーとして使用)
squid-2.6.stable6 (プロフェッショナルなキャッシュ
機能
を提供しながらリバース プロキシを実行します)
2. コンパイルしてインストールします
1.) nginxをインストールします
1.) インストール
[エンジン x] と発音される nginx は、BSD ライセンスに基づいてロシアの igor sysoev によって設立された
プロジェクト
です。彼は f5 のメンバーの 1 人だったと言われています:
http://nginx.net。ロシア最大のウェブサイトの中には 2 年以上使用しており、良好なパフォーマンスを示しています。
nginxのコンパイルパラメータは以下の通りです:
[root@localhost]#./configure --prefix=/usr/local/server/nginx --with-openssl=/usr/include
--with-pcre=/usr/include/pcre/ --with-http_stub_status_module --without-http_memcached_module
--http_fastcgi_module なし --http_rewrite_module なし --http_map_module なし
--http_geo_module なし --http_autoindex_module なし
ここで、nginx 構成
ファイル
で正規表現を使用したいため、pcre
モジュール のサポートが必要であることを説明する必要があります。 pcre と pcre-devel の rpm パッケージをインストールしましたが、ngxin は .h/.so/.a/.la ファイルを正しく見つけることができないため、少し変更を加えました:
[root@localhost]#mkdir /usr/include/pcre/.libs/
[root@localhost]#cp /usr/lib/libpcre.a /usr/include/pcre/.libs/libpcre.a
[root@localhost]#cp /usr/lib/libpcre.a /usr/include/pcre/.libs/libpcre.la
次に、およそ 908 行目で objs/makefile を変更し、以下をコメントアウトします:
./configure --disable-shared
次に、make と make install を通常どおり実行できます。
2.) 設定ファイル /usr/local/server/nginx/conf/nginx.conf を変更します
参考までに、私の nginx.conf の内容を以下に示します:
#RunUser
ユーザー誰も誰も誰も;
#開始プロセス
ワーカープロセス 2;
#グローバルエラー
ログ
とpidファイル
error_log ログ/error.log 通知;
pid ログ/nginx.pid;
#動作モードと最大接続数
イベント{
epoll を使用します;
ワーカー接続 1024;
}
#http サーバーをセットアップし、そのリバース プロキシ機能を使用して負荷分散サポートを提供します
http {
#MIME タイプを設定します
conf/mime.types を含めます;
default_type アプリケーション/オクテットストリーム;
#ログ形式を設定する
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';
log_format ダウンロード '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_range" "$sent_http_content_range"';
#リクエストバッファを設定します
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#gzip モジュールを有効にする
gzip オン;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;
出力バッファ 1 32k;
延期_出力 1460;
#アクセスログを設定する
access_log ログ/access.log メイン;
client_header_timeout 3 分;
client_body_timeout 3 分;
send_timeout 3 分;
ファイル送信オン;
tcp_noプッシュオン;
tcp_nodelay オン;
キープアライブタイムアウト 65;
#負荷分散サーバーリストを設定します
ups チュートリアル ストリーム mysvr {
#weight パラメーターは重みを表します。重みが大きいほど、割り当てられる可能性が高くなります
。
このマシン上の #Squid はポート 3128 を開きます
サーバー 192.168.8.1:3128 重み = 5;
サーバー 192.168.8.2:80 重み = 1;
サーバー 192.168.8.3:80 重み = 6;
}
1 2 3 4 5 6