著者:JackTian
マイクロチャネル公開番号:ITのJiege旅行(ID:Jake_Internet)
シリーズガイド
- LAMPシリーズのチュートリアル(1)| Linux環境でのHTTPDサービスのデプロイについて説明する
- LAMPシリーズのチュートリアル(2)| Linux環境でWebサイトを監視するためにAWStats分析システムをデプロイする方法は?
- LAMPシリーズのチュートリアル(3)| HTTPDサービスのアクセス制御を理解するための記事
- LAMPシリーズのチュートリアル(4)| MySQLデータベースシステム(1)
- LAMPチュートリアルシリーズ(5)| MySQLデータベースシステム(2)-SQLステートメントの基本操作
- LAMPシリーズのチュートリアル(6)| MySQLデータベースシステム(3)-データベースユーザー認証
- LAMPシリーズチュートリアル(7)| MySQLデータベースシステム(4)-データベースのバックアップとリカバリ
- LAMPシリーズのチュートリアル(8)| LAMP Webサイトアーキテクチャプラットフォームで簡単に遊ぶことができます(1)
- LAMPシリーズチュートリアル(9)| LAMPアーキテクチャアプリケーションケース-PHPMyAdminシステムの導入(2)
1. Nginxとは何ですか?
Nginxは、高性能HTTPおよびリバースプロキシWebサーバーであり、IMAP / POP3 / SMTPサービスも提供します。これは、ロシアで2番目に訪問されたRambler.ruサイトのためにIgor Sesoyevによって開発されました。最初のパブリックバージョンは、0.1.0でした。 2004年10月4日にリリースされました。メモリが少なく、同時実行性が高く、パフォーマンスの最適化、安定性、システムリソース消費量の削減、HTTP同時接続の高い処理機能のために特別に開発されました。1台のマシンで最大50,000の同時接続をサポートします。
したがって、実際には、Nginxの同時実行機能は、同じタイプのWebサーバーでより優れたパフォーマンスを発揮します。実際の環境では、Nginxを使用すると、このシナリオの次のアーキテクチャ図になります。実際、次のアーキテクチャ図では、Nginxサーバーは負荷分散サーバーまたはリバースプロキシサーバーとして直接理解できるため、クライアントがNginxサーバーにリクエストを送信する場合、Nginxサーバーはからのリクエストによってルールを構成する必要があります。クライアントはバックエンドのLAMP、Tomcat、およびLNMPに転送されます。
2.なぜNginxを使用するのですか?Apacheと比較し
てWebサーバーとして
、Nginxはより少ないリソースを使用し、より多くの同時接続をサポートします。同時実行性が高い場合、NginxはApacheサーバーの代わりになります。負荷分散サーバーとしてのNginxは、外部サービス用のRailsおよびPHPプログラムを内部的にサポートし、HTTPプロキシサーバーとして外部サービスもサポートします。C言語で記述されています。システムリソースのオーバーヘッドに関係なく、CPUの使用効率はPerlbalよりもはるかに優れています。
Nginxの構成はシンプルで、Apacheは複雑です
。Nginxは簡単に起動できます。ほぼ7 * 24時間実行できます。長時間再起動しなくても、ソフトウェアバージョンを中断することなくアップグレードできます。静的処理のパフォーマンスはApacheよりも優れているのは3倍以上です。Nginxは他のバックエンドと組み合わせて使用する必要があります。ApacheはPHPのサポートが簡単で、Nginxよりも多くのコンポーネントがあります。
コアポイント
Nginxは非同期であり、複数の接続が1つのプロセスに対応できます
。Apacheは同期マルチプロセスモデルであり、1つの接続が1つのプロセスに対応します。
専門分野
Nginxは静的リクエストのフロントエンド処理に
適しており、Apacheは動的リクエストのバックエンド処理に適しています。
3、Nginxインストールおよび
インストールサポートソフトウェア
Nginxの構成と操作には、pcreおよびzlibソフトウェアパッケージのサポートが必要です。Nginxをスムーズにインストールするには、これらのソフトウェアの開発パッケージを対応するライブラリとヘッダーファイルにインストールする必要があります。
# yum -y install pcre-devel zlib-devel
実行中のユーザーとグループを作成する
Nginxサービスプログラムはデフォルトでnobobyとして実行されます。アクセス許可をより正確に制御し、柔軟性を高め、セキュリティリスクを軽減するために、新しいユーザーアカウントを作成することをお勧めします。
# useradd -M -s /sbin/nologin nginx
ダウンロード、コンパイル、インストール
Nginxコンパイルオプションを構成するときは、インストールディレクトリを/ usr / local / nginxに設定し、実行中のユーザーとグループをnginxに設定します。http_stub_status_moduleモジュールがステータス統計をサポートできるようにして、サーバー接続情報の表示を容易にします。
# wget http://nginx.org/download/nginx-1.17.0.tar.gz
# tar zxf nginx-1.17.0.tar.gz
# cd nginx-1.17.0
# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
# make && make install
メインプログラムNginxのリンクファイルを作成します
# ln -s /usr/local/sbin/nginx /usr/local/sbin/
# ls -l /usr/local/sbin/nginx
lrwxrwxrwx. 1 root root 21 6月 4 07:31 /usr/local/sbin/nginx -> /usr/local/sbin/nginx
インストール後、sbinディレクトリへのデフォルトのインストールパスを入力し、nginxを実行して開始します。
# cd /usr/local/nginx/sbin/
# pwd
/usr/local/nginx/sbin
# ./nginx
# nginx
Nginxプログラムのステータスを監視する
# netstat -anpt | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 53816/nginx
ポートをリッスンした後、ブラウザでNginxアドレスに直接アクセスします。ブラウザに次のページが表示されたら、Nginxが正常にインストールされたことを意味します。
Nginxサービススクリプト
を使用してNginxサービススクリプトを記述し、chkconfigとサービスツールを使用して統合管理を行います。
#!/bin/bash
# chkconfig: 2345 99 20
# description: Nginx Server Control Scripts shell
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
if [ -f $PIDF ]; then
echo "Nginx is running.. Start it is error"
else
$PROG
fi
;;
stop)
if [ -f $PIDF ]; then
kill -s QUIT $(cat $PIDF)
rm -rf $PIDF
else
echo "Nginx is stopping .. Stop it is error"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
if [ -f $PIDF ]; then
kill -s HUP $(cat $PIDF)
else
echo "Nginx is stopping . reload it is error"
fi
;;
status)
if [ -f $PIDF ]; then
echo "Nginx is running"
else
echo "Nginx is stopping"
fi
;;
*)
echo "Usage: $0 (start|stop|restart|reload|status)"
exit 1
esac
exit 0
# chmod +x /etc/init.d/nginx
# chkconfig --add nginx
Nginx構成ファイルを変更する場合は、。/ nginx -sreloadコマンドを使用してNginx構成ファイルをロードできます。
# ./nginx -s reload
要約すると、
Nginxの基本概念、Nginxを使用する理由を紹介し、Nginxのインストールには予備的な理解があります。次の記事では、フォワードプロキシ、リバースプロキシ、負荷分散、LNMPアーキテクチャの構築について引き続き紹介します。本日は紹介します。ここで、ご不明な点がございましたら、ディスカッション用のメッセージを残してください。