memcachedに基づいてLNMMPプラットフォームを構築する
一、環境紹介
機能
ipアドレス
ソフトウェアのインストール
前段の静的ページと動的ページの提供
192.168.1.201
nginx+php
キャッシュサーバ
192.168.1.202
mencached
データベース・サーバ
192.168.1.203
MariaDB
二、nginxとphpのインストール構成
1.nginxのインストールと構成
Nginxのインストールについては、本人のブログに移動してくださいhttp://wangfeng7399.blog.51cto.com/3518031/1403741操作手順はここでは示されません
2.phpのインストール
phpのインストールについては、本人のブログに移動してください.http://wangfeng7399.blog.51cto.com/3518031/1381688操作手順はここでは示されません
3、xcacheを取り付け、php加速
xcacheのインストールについては、本人のブログに移動してくださいhttp://wangfeng7399.blog.51cto.com/3518031/1381688ここでは、具体的な操作手順は示しません.
4.nginxとphpの結合
編集/etc/nginx/nginx.conf、次のオプションを有効にします.
編集/etc/nginx/fastcgi_params、その内容を次のように変更します.
サポートされているホームフェースフォーマットにphpフォーマットのホームを追加します.
その後nginxのプロファイルを再読み込み
テストページの準備
nginxとphp、xcacheの統合が成功したことがわかります
5.あつりょくしけん
三、データベースのインストール構成
データベースのインストール構成については、本人のブログに移動してください.http://wangfeng7399.blog.51cto.com/3518031/1393146ここはもう邪魔にならない
四、memcachedのインストール
1.概要
Memcachedはオープンソース、高性能、分散メモリオブジェクトキャッシュシステムであり、Databaseへのアクセスを低減することによってWebアプリケーションを加速させることを主な目的として、キャッシュが必要な様々なシーンを適用することができる.データベース呼び出し、API呼び出し、またはページ参照結果の文字列、オブジェクトなどの直接データを格納するメモリベースのキー値ペアストレージです.
memcachedは、LiveJournal傘下のDanga Interactive社のBrad Fitzpatricをはじめとして開発されたソフトウェアです.現在ではmixi、hatena、Facebook、Vox、LiveJournalなど多くのサービスにおいてWebアプリケーションの拡張性を向上させる重要な要素となっている.
Memcachedは、コードアクセラレータでもデータベースミドルウェアでもない開発ツールです.その設計哲学思想は主に以下の方面に反映されている.
1. 単純key/valueストレージ:サーバはデータ自体の意味や構造に関心を持たず、シーケンス化可能なデータであればよい.ストレージ・アイテムは、「キー、有効期限、オプションのフラグおよびデータ」の4つの部分から構成されます.
2. 機能の実現の半分はクライアントに依存し、半分はサーバ側に基づいている:顧客はストレージ項目をサーバ側に送信し、サービス側からデータを取得し、サーバに接続できない場合に相応の動作を採用する.サービス側はデータの受信、記憶を担当し、データ項目のタイムアウトの期限切れを担当する.
3. 各サーバ間は互いに無視する:サーバ間でデータ同期を行わない;
4. O(1)の実行効率
5. 期限切れデータのクリーンアップ:デフォルトでは、MemcachedはLRUキャッシュであり、事前に予約した時間で期限切れデータを整理します.しかし、実際にはmemcachedはキャッシュされたデータを削除しません.ただし、期限が切れた後、お客様に見られなくなります.またmemcachedは、getコマンドが到着したときにその時間をチェックするだけで、キャッシュを本当に期限通りにクリーンアップすることはありません.
Memcachedは、memcachedのプロトコルに基づいて実装される数少ないコマンドを提供し、サーバ側とのインタラクションを完了します.
ストレージクラスコマンド:set,add,replace,append,prepend
データクラス取得コマンド:get,delete,incr/decr
統計クラスコマンド:stats,stats items,stats slabs,stats sizes
クリーンアップコマンド:flush_all
2.インストール
memcachedはyumでインストールすることもソースコードをコンパイルしてインストールすることもできますが、ここではyunでインストールします.
3.telnetコマンドを使用してmenmcachedの使用をテストする
memcachedは、コマンドラインに基づいてサービスを呼び出したり、サーバのステータスを表示したりするための基本コマンドのセットを提供します.
4.memcachedの一般的なオプションの説明:
-l:プロセスリスニングのアドレスを指定します.
-d:デーモンモードで運転
-u:指定したユーザーでmenmcachedプロセスを実行
-m:データのキャッシュに使用される最大メモリ容量、単位MB、デフォルト64 MB
-c:最大サポートされる同時接続数、デフォルトは1024
-p:傍受TCPポートを指定します.デフォルトは11211です.
-U:傍受するUDPポートを指定します.デフォルトは11211で、0はUDPポートを閉じることを示します.
-t:インバウンド要求を処理するための最大スレッド数はmencachedコンパイル時にサポートスレッドがオンになっている場合にのみ有効です.
-f:slab allocatorを設定してメモリ領域サイズが固定されたブロックを予め割り当てるときに使用する成長因子を定義する
M:メモリが足りない場合、LRUアルゴリズムでスペースを利用するのではなく、エラーメッセージを返します.
-n:最小のslab chuckサイズを指定します.単位バイト
-S:sslを有効にしてユーザ認証を行う
五、MemcachedのPHP拡張をインストールする
1、phpのmemcache拡張をインストールする
2.menmcache拡張を開く
編集/etc/php.iniファイルに次の項目を追加
memcacheのロードに成功したことがわかります
3.テスト
テストが成功したことがわかります
4.memcacheのグラフィックインタフェースのインストール
ユーザー名とパスワードはadminです
これは素晴らしいソフトウェアだと感じていますか?
5.あつりょくしけん
六、nginxとmemcachedの集合
nginxのデータをmemcacheに置き換えることもでき、以下のように構成されています.
機能
ipアドレス
ソフトウェアのインストール
前段の静的ページと動的ページの提供
192.168.1.201
nginx+php
キャッシュサーバ
192.168.1.202
mencached
データベース・サーバ
192.168.1.203
MariaDB
二、nginxとphpのインストール構成
1.nginxのインストールと構成
Nginxのインストールについては、本人のブログに移動してくださいhttp://wangfeng7399.blog.51cto.com/3518031/1403741操作手順はここでは示されません
2.phpのインストール
phpのインストールについては、本人のブログに移動してください.http://wangfeng7399.blog.51cto.com/3518031/1381688操作手順はここでは示されません
3、xcacheを取り付け、php加速
xcacheのインストールについては、本人のブログに移動してくださいhttp://wangfeng7399.blog.51cto.com/3518031/1381688ここでは、具体的な操作手順は示しません.
4.nginxとphpの結合
編集/etc/nginx/nginx.conf、次のオプションを有効にします.
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$$fastcgi_script_name;
include fastcgi_params;
}
編集/etc/nginx/fastcgi_params、その内容を次のように変更します.
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
サポートされているホームフェースフォーマットにphpフォーマットのホームを追加します.
location / {
root html;
index index.php index.html index.htm;
}
その後nginxのプロファイルを再読み込み
[root@node1 ~]# service nginx reload
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Reloading nginx: [ OK ]
テストページの準備
[root@node1 ~]# vi /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
nginxとphp、xcacheの統合が成功したことがわかります
5.あつりょくしけん
[root@node1 xcache-3.0.4]# ab -c 100 -n 1000 http://192.168.1.201/index.php
Concurrency Level: 100
Time taken for tests: 3.259 seconds
Complete requests: 1000
Failed requests: 87
(Connect: 0, Receive: 0, Length: 87, Exceptions: 0)
Write errors: 0
Total transferred: 60208909 bytes
HTML transferred: 60061909 bytes
Requests per second: 306.81 [#/sec] (mean)
Time per request: 325.930 [ms] (mean)
Time per request: 3.259 [ms] (mean, across all concurrent requests)
Transfer rate: 18040.01 [Kbytes/sec] received
三、データベースのインストール構成
データベースのインストール構成については、本人のブログに移動してください.http://wangfeng7399.blog.51cto.com/3518031/1393146ここはもう邪魔にならない
四、memcachedのインストール
1.概要
Memcachedはオープンソース、高性能、分散メモリオブジェクトキャッシュシステムであり、Databaseへのアクセスを低減することによってWebアプリケーションを加速させることを主な目的として、キャッシュが必要な様々なシーンを適用することができる.データベース呼び出し、API呼び出し、またはページ参照結果の文字列、オブジェクトなどの直接データを格納するメモリベースのキー値ペアストレージです.
memcachedは、LiveJournal傘下のDanga Interactive社のBrad Fitzpatricをはじめとして開発されたソフトウェアです.現在ではmixi、hatena、Facebook、Vox、LiveJournalなど多くのサービスにおいてWebアプリケーションの拡張性を向上させる重要な要素となっている.
Memcachedは、コードアクセラレータでもデータベースミドルウェアでもない開発ツールです.その設計哲学思想は主に以下の方面に反映されている.
1. 単純key/valueストレージ:サーバはデータ自体の意味や構造に関心を持たず、シーケンス化可能なデータであればよい.ストレージ・アイテムは、「キー、有効期限、オプションのフラグおよびデータ」の4つの部分から構成されます.
2. 機能の実現の半分はクライアントに依存し、半分はサーバ側に基づいている:顧客はストレージ項目をサーバ側に送信し、サービス側からデータを取得し、サーバに接続できない場合に相応の動作を採用する.サービス側はデータの受信、記憶を担当し、データ項目のタイムアウトの期限切れを担当する.
3. 各サーバ間は互いに無視する:サーバ間でデータ同期を行わない;
4. O(1)の実行効率
5. 期限切れデータのクリーンアップ:デフォルトでは、MemcachedはLRUキャッシュであり、事前に予約した時間で期限切れデータを整理します.しかし、実際にはmemcachedはキャッシュされたデータを削除しません.ただし、期限が切れた後、お客様に見られなくなります.またmemcachedは、getコマンドが到着したときにその時間をチェックするだけで、キャッシュを本当に期限通りにクリーンアップすることはありません.
Memcachedは、memcachedのプロトコルに基づいて実装される数少ないコマンドを提供し、サーバ側とのインタラクションを完了します.
ストレージクラスコマンド:set,add,replace,append,prepend
データクラス取得コマンド:get,delete,incr/decr
統計クラスコマンド:stats,stats items,stats slabs,stats sizes
クリーンアップコマンド:flush_all
2.インストール
memcachedはyumでインストールすることもソースコードをコンパイルしてインストールすることもできますが、ここではyunでインストールします.
[root@node2 ~]# yum install -y memcached
3.telnetコマンドを使用してmenmcachedの使用をテストする
memcachedは、コマンドラインに基づいてサービスを呼び出したり、サーバのステータスを表示したりするための基本コマンドのセットを提供します.
[root@node2 ~]# telnet 127.0.0.1 11211
add mykey 0 60 12
Hello world!
STORED
get mykey
VALUE mykey 0 12
Hello world!
END
add :
add keyname flag timeout datasize
get :
get keyname
4.memcachedの一般的なオプションの説明:
-l
-d:デーモンモードで運転
-u
-m
-c
-p
-U
-t
-f
M:メモリが足りない場合、LRUアルゴリズムでスペースを利用するのではなく、エラーメッセージを返します.
-n:最小のslab chuckサイズを指定します.単位バイト
-S:sslを有効にしてユーザ認証を行う
五、MemcachedのPHP拡張をインストールする
1、phpのmemcache拡張をインストールする
[root@node1 ~]# wget http://pecl.php.net/get/memcache-2.2.7.tgz
[root@node1 ~]# tar xf memcache-2.2.7.tgz
[root@node1 ~]# cd memcache-2.2.7
[root@node1 memcache-2.2.7]# /usr/local/php/bin/phpize
[root@node1 memcache-2.2.7]# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache
[root@node1 memcache-2.2.7]# make && make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
2.menmcache拡張を開く
編集/etc/php.iniファイルに次の項目を追加
extension =/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/memcache.so
memcacheのロードに成功したことがわかります
3.テスト
html test.php ,
<?php
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211) or die("Could not connect");
$version = $mem->getVersion();
echo "Server's version: ".$version."<br/>
";
$mem->set('hellokey', 'Hello World', 0, 600) or die("Failed to save data at the memcached server");
echo "Store data in the cache (data will expire in 600 seconds)<br/>
";
$get_result = $mem->get('hellokey');
echo "$get_result is from memcached server.";
?>
テストが成功したことがわかります
4.memcacheのグラフィックインタフェースのインストール
[root@node1 ~]# cd /usr/local/nginx/html/
[root@node1 html]# wget http://www.junopen.com/memadmin/memadmin-1.0.12.tar.gz
[root@node1 html]# tar xf memadmin-1.0.12.tar.gz
[root@node1 html]# cd memadmin
ユーザー名とパスワードはadminです
これは素晴らしいソフトウェアだと感じていますか?
5.あつりょくしけん
Concurrency Level: 100
Time taken for tests: 1.965 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 276000 bytes
HTML transferred: 129000 bytes
Requests per second: 508.81 [#/sec] (mean)
Time per request: 196.536 [ms] (mean)
Time per request: 1.965 [ms] (mean, across all concurrent requests)
Transfer rate: 137.14 [Kbytes/sec] received
六、nginxとmemcachedの集合
nginxのデータをmemcacheに置き換えることもでき、以下のように構成されています.
server {
listen 80;
server_name www.wangfeng7399.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
set $memcached_key $uri;
memcached_pass 192.168.1.202:11211;
default_type text/html;
error_page 404 @fallback;
}
location @fallback {
proxy_pass http://192.168.1.201;
}
}