Nginx ソースコードのコンパイルとインストールのプロセス記録

Nginx ソースコードのコンパイルとインストールのプロセス記録

rpm パッケージのインストールは比較的簡単なので、ここでは説明しません。
ほとんどのオープンソース ソフトウェアでは、インストール パッケージが見つからない場合は、ソース コード インストール方法を使用できます。ソース コード インストールは、yum や apt などのツールほど便利ではありませんが、非常に一般的であり、異なる CPU アーキテクチャや異なるオペレーティング システムを搭載したサーバーで使用できます。
ソース コードを使用してコンパイルおよびインストールする一般的な方法は、GitHub で対応するソフトウェア名を検索し、ソース コードを見つけて適切なバージョンを選択し、ソース コード ディレクトリの readme.md ファイルを確認することです (GitHub 上のこのファイルは、実際にはソース コードの説明ドキュメントです)。readme.md にプロジェクトのコンパイルおよびインストールまたはビルドの手順に関する説明が含まれていない場合は、対応するドキュメントの入手先も示されます。一部のソフトウェアのビルド ドキュメントは、INSTALL というファイルにも記述されています。readme.md ドキュメントにビルド手順が記載されていない場合は、INSTALL ファイルを探してみてください。

C 言語ソフトウェアの場合、ソース コードのコンパイル手順は通常次のようになります。
./configure
作る
インストールする
通常、./congfigure コマンドは、必要な依存コンポーネントやライブラリ ファイルがインストールされているかどうかなど、サーバーの CPU アーキテクチャとオペレーティング システムに基づいてコンパイル環境をチェックします。また、パラメータを使用してインストール場所やいくつかの構成項目を指定することもできます。
make コマンドは、-j パラメータを使用して CPU コアの数を指定できます。使用するコアの数が多いほど、コンパイル速度が速くなります。たとえば、8 コアのサーバーの場合、make -j8 を使用してコンパイル速度を上げることができます。
ソフトウェアをインストールするにはmake installを実行します

nginx の場合、ソース コードのコンパイルとインストールの手順は次のとおりです。
https://nginx.org/download/nginx-1.14.2.tar.gz をダウンロードしてください
tar -xvf nginx-1.14.2.tar.gz
nginx-1.14.2をインストールします

./configure -prefix=/usr/local/nginx -with-http_ssl_module
-j8 を作る
インストールする

/usr/local/nginx/sbin/nginx –v
インストールディレクトリは./configure中に/usr/local/nginxとして指定されるため、インストール後、nginxコマンドはこのディレクトリにあります。

HTML などの静的ページをデプロイする必要がある場合は、静的ファイル リソースを /usr/local/nginx/html/ ディレクトリにアップロードします。
nginx 設定ファイル /usr/local/nginx/conf/nginx.conf を編集し、2 行目のユーザーを root または現在のユーザーに変更します。 vim テキスト エディターで、行数を表示するには :set nu と入力します。

2行目のコメントを解除し、nobodyをrootに変更します。

Web アプリケーションがファイルのアップロードをサポートする必要がある場合は、アップロードされるファイルの上限を設定する必要があります。 18 行目に次のコードを追加します。

クライアントの最大ボディサイズは100mです。

静的リソースのアクセス ポートを変更する必要がある場合は、37 行目を変更します。たとえば、8081 に設定します。

リクエスト転送をサポートする必要がある場合 (たとえば、静的リソース内のバックエンド インターフェイスにアクセスするには、/api にアクセスするすべてのリクエストをポート 18080 上のアプリケーションに転送します)、次のコンテンツを 49 行目に追加します。

場所 /chat/api{
            プロキシパス http://127.0.0.1:18080/api;
            proxy_redirect オフ;
            proxy_set_header ホスト $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header アップグレード $http_upgrade;
			proxy_set_header 接続 'アップグレード';
	} 

上記の構成では、アクセス パスに /chat/api/ を含むすべてのリクエストが http://127.0.0.1:18080/api に転送されます。ここで、chat はデプロイされた静的リソース ディレクトリです。構成の最後の 2 行は、Websocket 接続、つまり ws プロトコルをサポートするために使用されます。

このような構成では、Web アプリケーションのフロントエンドとバックエンドを分離できます。つまり、フロントエンドの静的リソースはポート 8081 にデプロイされ、バックエンドのリソースはポート 18080 にデプロイされます。デプロイ後は、Web アプリケーションに通常どおりアクセスするために、ポート 18080 で nginx とアプリケーションを起動するだけです。

Nginx ソースコードのコンパイルとインストールに関するこの記事はこれで終わりです。Nginx ソースコードのコンパイルとインストールに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Centos7のソースコードのコンパイルとNginx1.13のインストールの詳細な説明
  • Nginx ソースコードのインストール方法
  • nginx ソースコード解析 configure スクリプトの詳細な説明
  • nginxソースコード解析スレッドプールの詳細な説明

<<:  iframe を使用して Web ページに天気の影響を表示します

>>:  面接で聞かれる可能性のあるCSSに関する質問

推薦する

MySQL サーバーの接続、切断、および cmd 操作

mysql コマンドを使用して MySQL サーバーに接続します。 MySQL サーバーが起動したら...

Vue はブラウザのパスワード記憶機能を無効にするサンプル コードを実装します

情報を探すインターネットで見つかったいくつかの方法: autocomplete="off&...

innodb_flush_method 値メソッド (例の説明)

innodb_flush_methodのいくつかの典型的な値 fsync: InnoDB は fs...

JSを段階的に学ぶ方法についての簡単な説明

目次概要1. jsの位置づけを明確に理解する2. 明確な学習パス3. 自己規律と粘り強さ4. 練習し...

HTML(divレイヤー)を介してFLASHにリンクを追加するための実装コード

今日、クライアントが広告を掲載したいのですが、提供された素材は Flash です。私たちはあまり気に...

WeChatアプレットに2048ミニゲームを実装する詳細なプロセス

レンダリング サンプルコード今日は、WeChat アプレットを使用して 2048 ゲームを実装します...

Dockerを使用してDjango+MySQL8開発環境をデプロイする方法の詳細な説明

しばらく前にシステムを再インストールしましたが、バックアップを取っていなかったので、コンピューター上...

有名なブログの再設計例 28 件

1. Webデザイナーウォール 2. Veerleのブログ 3. チュートリアル9 4. UXブース...

TLS暗号化通信を使用してDockerにリモート接続する詳細な例

デフォルトでは、Docker はネットワーク化されていない UNIX ソケット上で実行されます。オプ...

MySQL 同時実行制御の原則に関する知識ポイント

Mysql は、高性能なデータ ストレージ サービスを提供する主流のオープン ソース リレーショナル...

MySQL 5.7 でパスワードを忘れた場合の解決方法の詳細な説明

環境: [root@centos7 ~]# uname -r 3.10.0-514.el7.x86_...

SQL実装 LeetCode (176. 2番目に高い給与)

[LeetCode] 176. 2番目に高い給与従業員テーブルから 2 番目に高い給与を取得する ...

シンプルなカルーセル効果を実現するネイティブ js

この記事では、シンプルなカルーセル効果を実現するためのjsの具体的なコードを参考までに紹介します。具...

CSSインジェクションの知識の要約

最近のブラウザでは、CSS 内で JavaScript を実行することはできなくなりました。以前は、...

ファイアウォールルールの設定とコマンド(ホワイトリスト設定)の詳しい説明

1. ファイアウォールルールを設定する例1: ポート8080を外部に公開する ファイアウォールコマン...