Nginxサーバ管理と配置
Ngixをインストールする過程
1最新バージョンのNginnx URLをダウンロードします。http://nginx.org/en/download.htmlを選択します http://nginx.org/download/nginx-0.8.53.tar.gz解圧して良いソースのカバンをダウンロードします。
2 tar zxvf nginx-0.0.53.tar.gzは解凍されたソースフォルダに入ります。
3 cd nginx-000.53配置nginx
4./configur--prefix=/usr/local/nginx--with-http_stubstatusmodule
prefixはインストールパスです。withはインストールが必要なモジュールのために具体的に実行できます。
5 make&make install
二管理Ngix
インテンクスを起動 /usr/local/inx/sbin/inx
ストップ /usr/local/nginx/sbin/nginx-s stop
再読み込み /usr/local/inx/sbin/nginx-s reload
//私がインストールしたTengine webサーバー
インテンクスを起動 /usr/local/tensine 2/sbin/inx
ストップ /usr/local/tensine 2/sbin/nginx-s stop
再読み込み /usr/local/tensine 2/sbin/nginx-s reload
よくある問題:
1 nginxの設定で以下のエラーが発生した場合:
同じエラーがあったら、wwwセットとwwwユーザが存在するかどうかを確認してください。存在しないなら、直接作成すればいいです。
擬静的モジュールはpcreライブラリが必要です。先に入れます。
設置手順は以下の通りです。
tar zxvf pcre-70.90.tar.gz cd pcre-70.9/configure make&make install
そして:
./configure--user=web--group=web--prefix=/usr/local/nginx--with-http_stubstatusmodule--with-http_同前module--with-http_gzip_static.module //注意ユーザmake&make install
3構成部分の解釈
構成nginx./configur--prefix=/opt/nginx--with-http_stubstatusmodule解釈:--prefixはインストールパスで、--with-必要なインストールモジュールのために、具体的に実行できます。 ./configre--help表示有効モジュール
4 configureコンパイルを使用する時、関連するコンポーネントが不足していることをヒントにします。以下はインストールのステップです。
A.依存ライブラリの設置 yum install gcc openssl-devel pcre-devel zlib-devel B.configur
ここでは、Nginxサーバnginx.com nfのプロファイル説明を記録し、一部の注釈収集とネットワーク。
皰運行ユーザーuser wr-data; #起動プロセスは、通常はcpuの数と同じようにウォーカーカーカーカーを設定します。processes 1;
ボスグローバルエラーログとPIDファイルのerror_ロゴ /var/log/inx/error.log;pid /var/run/nginx.pid
皱動作モード及び接続数上限events{ アメリカ epoll; #epollは、IO(I/O Multilexing)を多重化する方式ですが、linux 2.6以上のカーネルのみに使用することで、nginxの性能を大幅に向上させます。 ウォーカーカーカーconnections 1024;腡一つのバックグラウンドウォーカーprocessプロセスの最大同時リンク数 # multiaccept on; }
httpサーバーを設定し、その逆代理機能を利用して負荷バランスを提供しhttp{ #mimeタイプを設定し、タイプはmime.typeファイルで定義されます。 include /etc/inx/mime.types; default_タイプ appication/octet-stream; #ログフォーマットを設定 access_ロゴ /var/log/inx/access.log;
#sendfileコマンドは、inxがsendfile関数(ゼロcopy方式)を呼び出してファイルを出力するかどうかを指定します。 #onにしてください。ダウンロードなどのアプリケーションディスクでIO重負荷アプリケーションを行うと、offに設定して、ディスクとネットワークI/O処理速度をバランスよくして、システムのup timeを低減します。 sendfile on; #tcp_nopush on;
#接続タイムアウト時間 #keepalive_タイムアウト 0; keepalive_タイムアウト 65; tcp_nodelay on; #開くgzip圧縮 gzip on; gzip_disable"MSIE[1-6]\.(?!*SV 1)「;
#設定要求バッファ clientheader_ブザーsize 1 k largeclientheader_ブffers 4 k
include/etc/inx/conf.d/*.conf include/etc/inx/sites-enabled/*;
#負荷バランスを設定するサーバリスト アップストリームmysvr{ #weigthパラメータは、ウェイトを表し、高いほど、割り当てられた確率が高くなります。 #本機のSquidは3128ポートを開けます。 server 192.168.8..1:3128 weight=5; server 192.168.8.2:80 weight=1; server 192.168.83:80 weight=6; }
server{ #リスニング80ポート listen 80; #www.xxxx.comを使用してアクセスすることを定義します。 server_name wwww.xxxx.com
#本仮想ホストのアクセスログを設定します。 access_ロゴ logs/www.xx.com.access.logs メーン
#デフォルトの要求 location/{ root /root; #サーバのデフォルトのウェブサイトのルートディレクトリの位置を指定します。 index index.php index.index.httm. #最初のページの索引ファイルの名前を定義します。
fastcgi_パス wwww.xxxx.com fastcgi_パラム SCRIPT_FILENAME $document_root/$fastcgi_スクリプトname include/etc/inx/fastcgi_params }
# エラーメッセージページの定義 error_page 500 502 503 504/50 x. location=/50 x. root /root; }
#静止ファイル、inxは自分で処理します。 location~^/(imags javascript𞓜js flash media tatic)/{ root/var/www/virtual/httdocs; #期限が30日過ぎても、静的なファイルはあまり更新されません。期限が切れたら、大きく設定できます。頻繁に更新すれば、小さく設定できます。 expires 30 d } #PHPスクリプト要求はすべてFastCGI処理に転送されます。FastCGIデフォルト設定を使用します。 location~\.php$ root/root; fastcgi_pass 127..0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME/ホーム/www/www fastcgi_スクリプトname include fastcgi_params } #Ngix状態を確認するアドレスを設定します。 location/NgixStatus{ stubstatus on; access_ロゴ on; auth_baic "NFinxStarts"; auth_baic_アメリカ.file conf/httpasswd } #アクセス禁止.httxxxファイル location~/\.ht{ デニーオール } } }
以上はいくつかの基本的な構成ですが、Ngixを使う最大の利点は負荷バランスです。
負荷バランスを使うなら、設定httpノードは以下のように修正できます。
httpサーバーを設定し、その逆代理機能を利用して負荷バランスを提供しhttp{ #mimeタイプを設定し、タイプはmime.typeファイルで定義されます。 include /etc/inx/mime.types; default_タイプ appication/octet-stream; #ログフォーマットを設定 access_ロゴ /var/log/inx/access.log;
#上記のいくつかの構成ノードを省略する。
#。。。。。。。。。。
#負荷バランスを設定するサーバリスト アップストリームmysvr{ #weigthパラメータは、ウェイトを表し、高いほど、割り当てられた確率が高くなります。 server 192.168.8.1 x:3128 weight=5;本機のSquidは3128ポートを開けます。 server 192.168.8.2 x:80 weight=1; server 192.168.3.3 x:80 weight=6; }
アップストリームmysvr 2{ #weigthパラメータは、ウェイトを表し、高いほど、割り当てられた確率が高くなります。
server 192.168.8.x:80 weight=1; server 192.168.8.x:80 weight=6; }
#最初の仮想サーバ server{ #リスニング192.168.8.xの80ポート listen 80; server_name 192.168.8.x
#aspx拡張子の負荷均衡要求 location~.*.aspx$
root /root; #サーバのデフォルトのウェブサイトのルートディレクトリの位置を指定します。 index index.php index.index.httm. #最初のページの索引ファイルの名前を定義します。
proxyパス http://mysvr とするmysvr定義のサーバーリストへの移行を要求します。
#以下はいくつかの逆方向プロキシの構成を削除します。
proxyredirect off;
#バックエンドのWebサーバは、X-Fiorwarded-Forを介してユーザのリアルIPを取得することができる。 proxysetheader Host$host; proxysetheader X-REAL-IP$remote uaddr; proxysetheader X-Forwarded-Fror$proxy_add_x_forwarded(u)for; clientmax_body_size 10 m #クライアント要求を許可する最大の単一ファイルバイト数 clientbody_ブザーsize 128 k #バッファエージェントは、ユーザ側が要求する最大バイト数をバッファリングし、 proxyconnect()timeout 90; #nginxとバックエンドサーバの接続タイムアウト時間(代理接続タイムアウト) proxysend_timeout 90; #バックエンドサーバデータ転送時間(代行送信タイムアウト) proxyread_.timeout 90; #接続に成功したら、バックエンドサーバ応答時間(代理受信タイムアウト) proxyブザーsize 4 k #プロキシサーバ(inx)がユーザーヘッダ情報を保存するバッファサイズを設定します。 proxybuffers 4 32 k #proxyバッファレスバッファ、ページの平均が32 k以下なら、このように設定します。 proxybusy_バファレスsize 64 k #高負荷下バッファサイズブffers*2) proxytemp_file_write_size 64 k #キャッシュフォルダのサイズを設定して、この値より大きくして、アップストリームサーバから転送します。
}
} }
テストnginx.com nfファイル:
1最新バージョンのNginnx URLをダウンロードします。http://nginx.org/en/download.htmlを選択します http://nginx.org/download/nginx-0.8.53.tar.gz解圧して良いソースのカバンをダウンロードします。
2 tar zxvf nginx-0.0.53.tar.gzは解凍されたソースフォルダに入ります。
3 cd nginx-000.53配置nginx
4./configur--prefix=/usr/local/nginx--with-http_stubstatusmodule
prefixはインストールパスです。withはインストールが必要なモジュールのために具体的に実行できます。
5 make&make install
二管理Ngix
インテンクスを起動 /usr/local/inx/sbin/inx
ストップ /usr/local/nginx/sbin/nginx-s stop
再読み込み /usr/local/inx/sbin/nginx-s reload
//私がインストールしたTengine webサーバー
インテンクスを起動 /usr/local/tensine 2/sbin/inx
ストップ /usr/local/tensine 2/sbin/nginx-s stop
再読み込み /usr/local/tensine 2/sbin/nginx-s reload
よくある問題:
1 nginxの設定で以下のエラーが発生した場合:
[emerg]: getpwnam(“www”) failed
解决案:nginx.co nfの中で〓user nobdyをuser wwwに変えてもいいです。同じエラーがあったら、wwwセットとwwwユーザが存在するかどうかを確認してください。存在しないなら、直接作成すればいいです。
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
2 コンパイルnginx出現make:**No.rule to make target`build'need by`default' Stop.擬静的モジュールはpcreライブラリが必要です。先に入れます。
設置手順は以下の通りです。
tar zxvf pcre-70.90.tar.gz cd pcre-70.9/configure make&make install
そして:
./configure--user=web--group=web--prefix=/usr/local/nginx--with-http_stubstatusmodule--with-http_同前module--with-http_gzip_static.module //注意ユーザmake&make install
3構成部分の解釈
構成nginx./configur--prefix=/opt/nginx--with-http_stubstatusmodule解釈:--prefixはインストールパスで、--with-必要なインストールモジュールのために、具体的に実行できます。 ./configre--help表示有効モジュール
4 configureコンパイルを使用する時、関連するコンポーネントが不足していることをヒントにします。以下はインストールのステップです。
A.依存ライブラリの設置
./configure \
--prefix=/usr \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/run/nginx/client/ \
--http-proxy-temp-path=/var/run/nginx/proxy/ \
--http-fastcgi-temp-path=/var/run/nginx/fcgi/ \
--http-uwsgi-temp-path=/var/run/nginx/uwsgi/ \
--http-scgi-temp-path=/var/run/nginx/scgi/
を実行するNgixプロファイルの詳細説明ここでは、Nginxサーバnginx.com nfのプロファイル説明を記録し、一部の注釈収集とネットワーク。
皰運行ユーザーuser wr-data; #起動プロセスは、通常はcpuの数と同じようにウォーカーカーカーカーを設定します。processes 1;
ボスグローバルエラーログとPIDファイルのerror_ロゴ /var/log/inx/error.log;pid /var/run/nginx.pid
皱動作モード及び接続数上限events{ アメリカ epoll; #epollは、IO(I/O Multilexing)を多重化する方式ですが、linux 2.6以上のカーネルのみに使用することで、nginxの性能を大幅に向上させます。 ウォーカーカーカーconnections 1024;腡一つのバックグラウンドウォーカーprocessプロセスの最大同時リンク数 # multiaccept on; }
httpサーバーを設定し、その逆代理機能を利用して負荷バランスを提供しhttp{ #mimeタイプを設定し、タイプはmime.typeファイルで定義されます。 include /etc/inx/mime.types; default_タイプ appication/octet-stream; #ログフォーマットを設定 access_ロゴ /var/log/inx/access.log;
#sendfileコマンドは、inxがsendfile関数(ゼロcopy方式)を呼び出してファイルを出力するかどうかを指定します。 #onにしてください。ダウンロードなどのアプリケーションディスクでIO重負荷アプリケーションを行うと、offに設定して、ディスクとネットワークI/O処理速度をバランスよくして、システムのup timeを低減します。 sendfile on; #tcp_nopush on;
#接続タイムアウト時間 #keepalive_タイムアウト 0; keepalive_タイムアウト 65; tcp_nodelay on; #開くgzip圧縮 gzip on; gzip_disable"MSIE[1-6]\.(?!*SV 1)「;
#設定要求バッファ clientheader_ブザーsize 1 k largeclientheader_ブffers 4 k
include/etc/inx/conf.d/*.conf include/etc/inx/sites-enabled/*;
#負荷バランスを設定するサーバリスト アップストリームmysvr{ #weigthパラメータは、ウェイトを表し、高いほど、割り当てられた確率が高くなります。 #本機のSquidは3128ポートを開けます。 server 192.168.8..1:3128 weight=5; server 192.168.8.2:80 weight=1; server 192.168.83:80 weight=6; }
server{ #リスニング80ポート listen 80; #www.xxxx.comを使用してアクセスすることを定義します。 server_name wwww.xxxx.com
#本仮想ホストのアクセスログを設定します。 access_ロゴ logs/www.xx.com.access.logs メーン
#デフォルトの要求 location/{ root /root; #サーバのデフォルトのウェブサイトのルートディレクトリの位置を指定します。 index index.php index.index.httm. #最初のページの索引ファイルの名前を定義します。
fastcgi_パス wwww.xxxx.com fastcgi_パラム SCRIPT_FILENAME $document_root/$fastcgi_スクリプトname include/etc/inx/fastcgi_params }
# エラーメッセージページの定義 error_page 500 502 503 504/50 x. location=/50 x. root /root; }
#静止ファイル、inxは自分で処理します。 location~^/(imags javascript𞓜js flash media tatic)/{ root/var/www/virtual/httdocs; #期限が30日過ぎても、静的なファイルはあまり更新されません。期限が切れたら、大きく設定できます。頻繁に更新すれば、小さく設定できます。 expires 30 d } #PHPスクリプト要求はすべてFastCGI処理に転送されます。FastCGIデフォルト設定を使用します。 location~\.php$ root/root; fastcgi_pass 127..0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME/ホーム/www/www fastcgi_スクリプトname include fastcgi_params } #Ngix状態を確認するアドレスを設定します。 location/NgixStatus{ stubstatus on; access_ロゴ on; auth_baic "NFinxStarts"; auth_baic_アメリカ.file conf/httpasswd } #アクセス禁止.httxxxファイル location~/\.ht{ デニーオール } } }
以上はいくつかの基本的な構成ですが、Ngixを使う最大の利点は負荷バランスです。
負荷バランスを使うなら、設定httpノードは以下のように修正できます。
httpサーバーを設定し、その逆代理機能を利用して負荷バランスを提供しhttp{ #mimeタイプを設定し、タイプはmime.typeファイルで定義されます。 include /etc/inx/mime.types; default_タイプ appication/octet-stream; #ログフォーマットを設定 access_ロゴ /var/log/inx/access.log;
#上記のいくつかの構成ノードを省略する。
#。。。。。。。。。。
#負荷バランスを設定するサーバリスト アップストリームmysvr{ #weigthパラメータは、ウェイトを表し、高いほど、割り当てられた確率が高くなります。 server 192.168.8.1 x:3128 weight=5;本機のSquidは3128ポートを開けます。 server 192.168.8.2 x:80 weight=1; server 192.168.3.3 x:80 weight=6; }
アップストリームmysvr 2{ #weigthパラメータは、ウェイトを表し、高いほど、割り当てられた確率が高くなります。
server 192.168.8.x:80 weight=1; server 192.168.8.x:80 weight=6; }
#最初の仮想サーバ server{ #リスニング192.168.8.xの80ポート listen 80; server_name 192.168.8.x
#aspx拡張子の負荷均衡要求 location~.*.aspx$
root /root; #サーバのデフォルトのウェブサイトのルートディレクトリの位置を指定します。 index index.php index.index.httm. #最初のページの索引ファイルの名前を定義します。
proxyパス http://mysvr とするmysvr定義のサーバーリストへの移行を要求します。
#以下はいくつかの逆方向プロキシの構成を削除します。
proxyredirect off;
#バックエンドのWebサーバは、X-Fiorwarded-Forを介してユーザのリアルIPを取得することができる。 proxysetheader Host$host; proxysetheader X-REAL-IP$remote uaddr; proxysetheader X-Forwarded-Fror$proxy_add_x_forwarded(u)for; clientmax_body_size 10 m #クライアント要求を許可する最大の単一ファイルバイト数 clientbody_ブザーsize 128 k #バッファエージェントは、ユーザ側が要求する最大バイト数をバッファリングし、 proxyconnect()timeout 90; #nginxとバックエンドサーバの接続タイムアウト時間(代理接続タイムアウト) proxysend_timeout 90; #バックエンドサーバデータ転送時間(代行送信タイムアウト) proxyread_.timeout 90; #接続に成功したら、バックエンドサーバ応答時間(代理受信タイムアウト) proxyブザーsize 4 k #プロキシサーバ(inx)がユーザーヘッダ情報を保存するバッファサイズを設定します。 proxybuffers 4 32 k #proxyバッファレスバッファ、ページの平均が32 k以下なら、このように設定します。 proxybusy_バファレスsize 64 k #高負荷下バッファサイズブffers*2) proxytemp_file_write_size 64 k #キャッシュフォルダのサイズを設定して、この値より大きくして、アップストリームサーバから転送します。
}
} }
テストnginx.com nfファイル:
sbin/nginx – t – c conf/nginx2.conf