ホームページ  >  記事  >  バックエンド開発  >  Nginx を素早くセットアップし、基本パラメータを設定する

Nginx を素早くセットアップし、基本パラメータを設定する

不言
不言オリジナル
2018-07-11 14:34:271805ブラウズ

この記事では、Nginx を簡単にセットアップするための構成とその基本的なパラメーターを主に紹介します。これには一定の参考値があります。ここで共有します。必要な友人は参照してください。

簡単なセットアップと基本Nginx パラメータの説明

1. Nginx の概要

1. Nginx の簡単な説明

Nginx は、オープンソース、高性能、信頼性の高い HTTP ミドルウェアおよびプロキシ サービスです。

2. 一般的な HTTP サービス

  • httpd - Apache

  • IIS - Microsoft

  • GWE - Google

  • tomcat - Sun

2. Nginx

を選ぶ理由1. IO マルチチャネルepoll の多重化

IO 多重化とは

複数のディスクリプタの I/O 操作を 1 つのスレッド内で同時に交互に実行することができ、これを I/O 多重化と呼びます。ここでの「多重化」とは、同じスレッドを再利用することを指します。

epoll とは

IO 多重化の実装方法: select、poll、epoll
select

基本原則: select 関数によって監視されるファイル記述子は、writefds、readfds、およびExceptfds という 3 つのカテゴリに分類されます。呼び出し後、select 関数は、記述子の準備ができる (データが読み取り可能、書き込み可能、​​または除外される) か、タイムアウトするまでブロックされます (タイムアウトは待ち時間を指定し、すぐに戻る場合は null に設定できます)。関数が戻ります。 select 関数が返されると、fdset をトラバースすることで準備完了の記述子を見つけることができます。

select 欠点: 1. 監視できるファイル記述子の数には最大制限があります。
2. リニアスキャンは非効率的です。

epoll

基本原則: epoll は水平トリガーとエッジ トリガーをサポートしています。最大の機能はエッジ トリガーです。 process どの fd が準備ができたばかりで、一度だけ通知されます。もう 1 つの特徴は、epoll が「イベント」準備通知メソッドを使用して、epoll_ctl を通じて fd を登録することです。fd の準備が完了すると、カーネルはコールバックのようなコールバック メカニズムを使用して fd をアクティブ化し、epoll_wait が通知を受信できるようになります。

epoll の利点: 1. 最大同時接続数に制限がなく、開くことができる FD の上限は 1024 (1G のメモリ) よりはるかに大きくなります。約100,000ポートを監視できます)。
2. 効率が向上します ポーリング方式ではないので、FD の数が増えても効率が低下することはありません。
3. メモリ コピー: mmap() ファイル マッピング メモリを使用して、カーネル スペースでのメッセージ パッシングを高速化します。つまり、epoll は mmap を使用してコピーのオーバーヘッドを削減します。

2. 軽量

機能モジュールの削減

コードのモジュール化

3. CPU アフィニティ (アフィニティ) ) は良いです

CPU アフィニティ (アフィニティ) は、CPU コアを Nginx ワーカー プロセスにバインドする方法で、各ワーカー プロセスを 1 つの CPU で実行するように修正し、CPU キャッシュ ミスを減らしてパフォーマンスを向上させます。

4. sendfile

3. Nginx (CentOS7) の簡単なセットアップと基本パラメータ

1. yum のインストール[参考]

作成 /etc/yum.repos.d/nginx.repo ファイルに次の内容を入力します。

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1
OS オプションの値は centos です。そして rhel
OSRELEASE はシステムのバージョンです。たとえば、67 はそれぞれバージョン 6.x と 7.x を表します。

実行yum install -y nginx nginxをインストール

実行nginx -v nginxのバージョンを確認

[root~]# nginx -v
nginx version: nginx/1.14.0

2. コンパイル パラメーターの詳細な説明

nginx インストール中のコンパイル パラメーターの表示

nginx -V
[root~]# nginx -V
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled

configure arguments: 
--prefix=/etc/nginx 
--sbin-path=/usr/sbin/nginx 
--modules-path=/usr/lib64/nginx/modules 
--conf-path=/etc/nginx/nginx.conf 
--error-log-path=/var/log/nginx/error.log 
--http-log-path=/var/log/nginx/access.log 
--pid-path=/var/run/nginx.pid 
--lock-path=/var/run/nginx.lock 
--http-client-body-temp-path=/var/cache/nginx/client_temp 
--http-proxy-temp-path=/var/cache/nginx/proxy_temp 
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp 
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp 
--http-scgi-temp-path=/var/cache/nginx/scgi_temp 
--user=nginx 
--group=nginx 
--with-compat 
--with-file-aio 
--with-threads 
--with-http_addition_module 
--with-http_auth_request_module 
--with-http_dav_module 
--with-http_flv_module 
--with-http_gunzip_module 
--with-http_gzip_static_module 
--with-http_mp4_module 
--with-http_random_index_module 
--with-http_realip_module 
--with-http_secure_link_module 
--with-http_slice_module 
--with-http_ssl_module 
--with-http_stub_status_module 
--with-http_sub_module 
--with-http_v2_module 
--with-mail 
--with-mail_ssl_module 
--with-stream 
--with-stream_realip_module 
--with-stream_ssl_module 
--with-stream_ssl_preread_module 
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' 
--with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

インストールとコンパイルの詳細な説明パラメータ [参考]

設定ファイルのディレクトリ実行可能ファイル名とディレクトリ#--modules-path=/usr/lib64/nginx/modules#--conf-path=/etc/nginx/nginx.conf--error-log-path=/var/log/nginx/error.log--http-log-path=/var/log/nginx/access.log--pid-path=/var/run/nginx.pid--lock-path=/var/run/nginx.lock--http-client-body-temp-path=/var/cache/nginx/client_temp--user=nginx--with-http_random_index_module--with-http_stub_status_module--with-http_sub_moduleCFLAGS 変数に追加される追加パラメータを設定します 追加パラメータを設定し、システム ライブラリにリンクします。すべてのインストール場所を表示します。 nginx ファイル
コンパイルオプション Function
##--prefix =/etc/nginx
--sbin-path=/usr/sbin/nginx
nginx Dynamics モジュールのインストール ディレクトリ
メイン設定ファイル名とディレクトリ
グローバル エラー ログ ファイル名とディレクトリ
HTTP のメインリクエストログファイルの名前サーバーとディレクトリ
nginx.pid ディレクトリ。これはstorage メインプロセスのプロセス ID ファイル
ディレクトリここで nginx.ロックが見つかりました
--http -proxy-temp -path=/var/cache/nginx/proxy_temp
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp
--http -uwsgi-temp-path=/var/cache/nginx/uwsgi_temp
--http-scgi-temp-path=/var/cache/nginx/scgi_temp
対応するモジュールの実行時に nginx によって保持される一時ファイル
--group =nginx
Nginx プロセス起動用のユーザーとユーザー グループを設定します
ディレクトリからランダムに選択 ランダムなホームページ
Nginx クライアント ステータス
HTTP コンテンツの置換 ##--with-cc-opt=
--with-ld-opt=
3. インストール ディレクトリの詳細説明

rpm -ql nginx
[root~]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx
/etc/nginx/nginx.conf
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf
/etc/nginx/fastcgi_params
/etc/nginx/scgi_params
/etc/nginx/uwsgi_params
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/win-utf
/etc/nginx/mime.types
/etc/sysconfig/nginx
/etc/sysconfig/nginx-debug
/usr/lib/systemd/system/nginx-debug.service
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx
/usr/lib64/nginx/modules
/etc/nginx/modules
/usr/sbin/nginx
/usr/sbin/nginx-debug
/usr/share/doc/nginx-1.14.0
/usr/share/doc/nginx-1.14.0/COPYRIGHT
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx
/usr/share/nginx/html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/var/cache/nginx
/var/log/nginx
/usr/libexec/initscripts/legacy-actions/nginx
/usr/libexec/initscripts/legacy-actions/nginx/check-reload
/usr/libexec/initscripts/legacy-actions/nginx/upgrade

デフォルトのパス

タイプ関数##/ etc/logrotate.d/nginx設定ファイル /etc/nginx/nginx.conf#/etc/nginx /fastcgi_params/etc/nginx/scgi_params/etc/nginx/ koi-win/etc/nginx/win-utf/usr/lib/systemd/system/nginx-debug.service/etc/sysconfig/nginx/etc/sysconfig/nginx-debugディレクトリ Nginxモジュールディレクトリ CommandNginx サービスの起動管理用ターミナル コマンド/usr/share/man/man8/nginx.8.gzファイル、ディレクトリ Nginx キャッシュ ディレクトリ/var/log/nginxNginx ログディレクトリ #

4. Nginx の一般的なコマンド

#logrotate サービスのログ切断に使用される Nginx ログ ローテーション ## /etc/nginx
/etc/nginx/conf.d
/etc/nginx /conf.d/default.conf
ディレクトリ、設定ファイルnginx メイン設定ファイル
/etc/nginx/uwsig_params
設定ファイル
cgi 設定関連、fastcgi 設定
##/etc/nginx/koi-utf
#設定ファイル##エンコーディング変換マッピング変換ファイル
#/etc/nginx/mime.types
設定ファイル
Content-Typeとhttpプロトコルの拡張子の対応関係を設定します
/usr/lib/systemd/system/nginx.service
設定ファイル
は設定に使用されます。システムデーモンマネージャーの管理方法
/usr/lib64/nginx/modules
/etc/nginx/mudules
/usr/sbin/nginx
/usr/sbin/nginx- debug
/usr/share/doc/nginx-1.14 .0
/usr/share/doc/nginx-1.14.0/COPYRIGHT
Nginx マニュアルとヘルプ ファイル
#/var/cache/nginx
ディレクトリ
ディレクトリ
コマンド指定した設定ファイルで nginx を起動します構成ファイルのリロード#nginx -s restartnginx -vnginx -V# #nginx - t [-c ]## nginx -s reloadNginx のマスター プロセスが正確さをチェックします。設定ファイルの内容がエラーの場合は、エラー メッセージが返され、nginx は引き続き元の設定ファイルを使用して動作します (ワーカーは影響を受けないため)
##説明 # #nginx [-c ]
nginx -s quit nginx を通常どおり停止すると、Nginx は終了する前に受け入れられた接続要求を完了します。
nginx -s stop 処理中のリクエストがあるかどうかに関係なく、nginx を迅速に停止します。
#nginx -s reload [-c <構成ファイル>]
ログ ファイルを再度開きます
Viewバージョン
インストール中にコンパイルパラメータを表示します
設定ファイルの構文が正しいかどうかを確認します
コマンドは、変更された構成ファイルをロードします。コマンドの発行後、次のイベントが発生します。

Nginx は新しいワーカー プロセスを開始し、新しい構成ファイルを使用します

Nginx は新しいリクエストを新しいワーカー プロセスに割り当てます
  1. Nginx は、次からのすべてのリクエストを待ちます前のワーカー プロセスに戻り、関連するワーカー プロセスを閉じます

  2. 古いワーカー プロセスがすべて閉じるまで上記のプロセスを繰り返します

  3. 上記がこの記事の全内容です。皆さんの学習に役立つことを願っています。 役立つと思います。関連コンテンツについては、PHP 中国語 Web サイトに注目してください。
  4. 関連する推奨事項:

  5. Nginx ロード スケジューラのデュアル Tomcat ロードとセッション共有 MySQL バックエンド データベース
nginx を使用する1 台のサーバーに複数の Web サーバーを展開する

以上がNginx を素早くセットアップし、基本パラメータを設定するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。