目次:
Nginxの利点
Nginx (エンジン x) は、高性能 HTTP (C10k の問題を解決する) およびリバース プロキシ サーバーであり、IMAP/POP3/SMTP サーバーでもあります。
1. Nginx は Web サーバーとして静的ファイルとインデックス ファイルを処理し、自動インデックス作成の効率が非常に高くなります。
2. Nginx はプロキシ サーバーとして、キャッシュを使用せずにリバース プロキシの高速化を実現し、Web サイトの実行速度を向上させます。
3. 負荷分散サーバーとして、Nginx は内部で Rails と PHP を直接サポートできるだけでなく、外部サービスの HTTP プロキシ サーバーもサポートし、アルゴリズムを使用した単純なフォールト トレランスと負荷分散もサポートします。
4. パフォーマンスの面では、Nginx はパフォーマンスの最適化のために特別に開発されており、実装の効率に細心の注意を払っています。カーネル ポーリング モデルを採用しており、より多くの同時接続をサポートでき、最大 50,000 の同時接続への応答をサポートでき、占有するメモリ リソースは非常にわずかです。
5. 安定性の点で、Nginx は段階的リソース割り当てテクノロジーを採用しており、CPU とメモリの使用量が非常に低くなります。Nginx関係者によると、Nginxは1万の非アクティブな接続を維持しており、これらの接続が占有するメモリは2.5MBのみであるため、DOSのような攻撃は基本的にNginxには影響しないという。
6. 高可用性の点では、Nginx はホットデプロイメントをサポートしており、起動速度が特に速いため、サービスを中断することなくソフトウェアのバージョンや構成をアップグレードできます。再起動すると、ほぼ 24 時間 7 時間、中断することなく実行できます。
要するに、{
高い同時実行性
I/O多重化
エポール
非同期
ノンブロッキング
}
HTTPプロトコルの詳しい説明
HTTP -- ハイパー テキスト転送プロトコル (ハイパーテキスト転送プロトコル) は、TCP 上で確立されるステートレス接続です。基本的なワークフロー全体では、クライアントが HTTP 要求を送信し、クライアントがアクセスしたいリソースと要求されたアクションを示します。サーバーがリクエストが送信されると、サーバーはリクエストの処理を開始し、リクエストに従ってサーバー リソースにアクセスするための対応するアクションを実行し、最後に HTTP 応答を送信して結果をクライアントに返します。リクエストの開始からレスポンスの終了までをトランザクションと呼び、トランザクションが終了するとログ エントリがサーバーに追加されます。
Nginx のデプロイ - ヤム
公式リンク: http://www.nginx.org
1.yumインストールyum-utils
2.vim /etc/yum.repos.d/nginx.repo
3. /etc/yum.repos.d/nginx.repo
[nginx-stable] name=nginx安定リポジトリ baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=1 Enabled=1 gpgkey=https://nginx.org/keys/nginx_signing. key module_hotfixes=true [nginx-mainline] name=nginx メインライン リポジトリ baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=1 Enabled=0 gpgkey=https://nginx. org/keys/nginx_signing.key module_hotfixes=true4.yum-config-manager --nginx-mainline を有効にする
5.yum -y nginxをインストールします
6.systemctlでnginxを起動
7.systemctlでnginxを有効にする
8. ファイアウォールを閉じます。 systemctl stop firewalld
SELinux setenforce 0 を無効にする
9. バージョンの表示 nginx -V
10. テスト用ブラウザ
Nginx設定ファイル
すべての設定ファイルを表示する rpm -ql nginx
共通の設定ファイル
/usr/share/nginx/html/index.html デフォルトのホームページ
/var/log/nginx ログ フォルダー
/var/cache/nginx キャッシュ フォルダー
/etc/logrotate.d/nginx ログローテーション
/etc/nginx/nginx.conf 一般的な設定ファイル
/etc/nginx/conf.d サブ構成ファイル
/etc/nginx/conf.d/default.conf デフォルトの Web サイト設定ファイル
/usr/lib64/nginx Nginx モジュール ディレクトリ
/etc/nginx/koi-utf 文字セット、ファイルエンコーディング
/etc/nginx/mime.types ファイル関連付けプログラム
/etc/nginx/modules サードパーティモジュール
/usr/lib/systemd/system/nginx-debug.servicenginx デバッガ起動スクリプト
Nginxのコンパイルパラメータ
Nginxの共通コンパイルパラメータ
--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 プログラム ID
--lock-path=/var/run/nginx.lock nginx の繰り返し起動を防ぐためのロック パス
--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 php キャッシュ
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp Python キャッシュ
--with-compat 動的モジュール互換性を有効にする
--user=nginx ユーザー
--group=nginx グループ
--with-http_auth_request_module 認証モジュール
--with-http_dav_module アップロード PUT、DELETE、MKCOL を追加: コレクションの作成、COPY、および MOVE メソッド) デフォルトではオフになっています
--with-http_flv_module NGINX が MP4、FLV ビデオ サポート モジュールを追加
--with-http_gunzip_module 圧縮モジュール
--with-http_mp4_module マルチメディア モジュール
--with-http_random_index_module nginx ランダムなホームページ モジュールを表示します
--with-http_realip_module Nginx が実際の IP モジュールを取得する
--with-http_secure_link_module nginx セキュア ダウンロード モジュール
--with-http_slice_module nginx 中国語ドキュメント
--with-http_ssl_module セキュリティ モジュール
--with-http_stub_status_module アクセスステータス
--with-http_sub_module nginx は Web サイトの応答コンテンツを置き換えます
--with-mail メールクライアント
CPU 最適化パラメータ: {
--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'}
Nginxの基本構成
Nginx 設定ファイルのアドレス: /etc/nginx/nginx.conf
nginx メイン設定ファイル (通常は「nginx.conf」) は、Nginx サーバーのコア設定ファイルであり、サーバーの動作の全体的な定義が含まれています。以下は、nginx メイン設定ファイルの一般的な構造と共通のディレクティブです。
1. `user`: nginx ワーカー プロセスの実行ユーザーとユーザー グループを定義します。
2. `worker_processes`: nginx ワーカー プロセスの数を指定します。通常は CPU コアの数の倍数に設定されます。
3. `error_log`: エラー ログの場所とレベルを設定します。
4. `pid`: nginx ワーカー プロセスの PID ファイルの場所を指定します。
5. `events`: nginx がイベントを処理するためのモジュールとパラメーターを設定します。たとえば、`worker_connections` は各ワーカー プロセスの最大接続数を設定するために使用されます。
6. `http`: HTTP リクエストを処理する nginx の構成を定義します。
- `include`: 他の設定ファイルをインポートします。
- `default_type`: デフォルトの MIME タイプを指定します。
- `log_format`: アクセスログの形式を設定します。
- `access_log`: アクセス ログの場所と形式を指定します。
- `sendfile`: ファイル転送にsendfileを有効にするかどうかを設定します。
- `keepalive_timeout`: クライアント接続のタイムアウトを指定します。
- `gzip`: レスポンスデータの圧縮方法を設定します。
- `server`: 仮想ホストの構成を定義します。
- `listen`: リッスンするポート番号とプロトコルを指定します。
- `server_name`: 仮想ホストのドメイン名を指定します。
- `location`: リクエスト URL パスの一致ルールと対応する処理ロジックを定義します。上記は、nginx メイン設定ファイルの一般的な構造といくつかの一般的な命令です。実際、nginx の構成は非常に柔軟であり、特定のニーズを満たすために他の多くの命令やモジュールを使用できます。特定のニーズに応じて、nginx のメイン構成ファイルをカスタマイズおよび拡張できます。
仮想ホスト設定ファイルのアドレス: /etc/nginx/conf.d/~~~~~
Nginx では、仮想ホストの構成ファイルは通常、メインの nginx 構成ファイル (「nginx.conf」) の「http」ブロック内の「server」ブロックを介して定義されます。各仮想ホストには個別の「サーバー」ブロックがあり、特定のドメイン名またはリスニング ポートの構成を指定するために使用されます。以下に例を示します。
```
http { ...サーバー { listen 80; サーバー名 example.com; root /path/to/root; location / { # この仮想ホストの処理ロジック } }
サーバー { listen 80; サーバー名 subdomain.example.com; root /path/to/subdomain; location / { # 異なるドメイン名を持つ仮想ホストは異なる処理ロジックを持つことができます } }
...
}
```上記の例では、2 つの仮想ホストの構成が定義されています。最初の仮想ホストはドメイン名として「example.com」を使用し、ポート 80 でリッスンし、要求されたルート ディレクトリを「/path/to/root」に設定します。2 番目の仮想ホストはドメイン名として「subdomain.example.com」を使用し、ポート 80 でリッスンし、リクエストのルート ディレクトリを「/path/to/subdomain」に設定します。
「location」ブロックは、各仮想ホストの「server」ブロック内で使用して、特定の URL パスの処理ロジックを定義できます。必要に応じて、プロキシ、キャッシュ、リダイレクトなどのさまざまなアクションを仮想ホストごとに指定できます。
実際のニーズに応じて、「http」ブロックに仮想ホスト構成を追加して、異なるドメイン名またはリスニング ポートを持つ Web サイト サービスをサポートできます。同時に、「include」コマンドを使用して仮想ホストの構成ファイルを個別のファイルに分割し、構成ファイルの読みやすさと保守性を向上させることもできます。
Nginx ログ ログ
正しいログ: access_log
192.168.100.254 - - [17/Dec/2017:14:45:59 +0800] "GET /nginx-logo.png HTTP/1.1" 200 368 "http://192.168.100.10/" "Mozilla/5.0 (Windows) NT 6.1; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0" "-"
ログレコードの意味
192. リモートホストIP
- - ユーザー
【2017】時間
取得、ダウンロード、投稿を行います。
/nginx-logo.png ダウンロード画像
httpバージョン
ステータスコードの結果は何ですか。正しいか間違っているか
368サイズ
リンク先は、ホームページ http://192.168.100.10/
Mozilla 5.0 ブラウザのバージョン
Windows NT クライアント システムの種類
- リモートクライアントのホストアドレス (注を参照)
エラーログ: error_log
Nginx WEBモジュール
接続ステータス
ランダムなホームページ
モジュールを交換する
ファイルの読み取り
ファイル圧縮
ページキャッシュ
ヒル対策
Nginxのアクセス制限
ngx_http_limit_req_module リクエスト頻度制限
ngx_http_limit_conn_module 接続頻度制限