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 の varchar 型に関する注意点

varchar の保存ルール4.0 未満のバージョンでは、varchar(20) は 20 バイトを...

フロントエンドJSサンドボックスを実装するいくつかの方法についての簡単な説明

目次序文iframeはサンドボックスを実装しますdiffメソッドを使用したサンドボックスの実装プロキ...

jsはタイトルと説明のキーワードを検出し、見つかった場合は置換するか他のページにジャンプします。

キーワード 一般タイトルには、クラック、キー、シリアル番号、キージェネレータなどの単語を含めることは...

Vueシャトルボックスは上下の動きを実現します

この記事の例では、vueシャトルボックスを上下に動かすための具体的なコードを参考までに共有しています...

Vue で axios を使用して画像をアップロードするときに発生する問題

目次FormDataとは何ですか? vueとaxiosの協力による実践的な体験追加()セット()消去...

MySQL テーブルにおける非主キー列オーバーフロー監視の詳細な説明

今日もまた罠に落ちてしまいました。 私は以前MySQLの主キーオーバーフローに遭遇したことがあり、そ...

Docker Swarmを使用してWordPressを構築する方法

原因かつて私は Vultr に WordPress を設定しましたが、よく知られている理由により、こ...

JavaScript Three.js でテキストを作成する最初の経験

目次効果テキストの作成を開始するまずフォントローダーを作成するフォントライブラリを読み込むテキストジ...

MySQL レプリケーション問題の 3 つのパラメータの分析

目次01 sql_slave_skip_counter パラメータ02 スレーブスキップエラーパラメ...

JD.com フラッシュセール効果を実現する JavaScript

この記事では、JD.comのフラッシュセール効果を実現するためのJavaScriptの具体的なコード...

フローティングメニューを実装するjQueryプラグイン

毎日jQueryプラグインを学ぶ - フローティングメニュー、参考までに、具体的な内容は次のとおりで...

HTML シンプルショッピング数量アプレット

この記事では、参考までにシンプルなHTMLショッピング数量アプレットを紹介します。具体的な内容は次の...

Debian 9 システムに MySQL データベースをインストールする方法

序文タイトルを見ると、誰もが「Debian 9 に MySQL をインストールするにはどうすればいい...

Angular CLI リリース パスの構成項目の簡単な分析

序文プロジェクトのリリースでは、常に特定の状況に応じたパッケージ化が必要です。Angular CLI...