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 はリレーショナルデータベースですか?

MySQL はリレーショナル データベース管理システムです。リレーショナル データベースは、すべて...

MySQL での IN データボリュームの使用の最適化された記録

MySQL のバージョン番号は 5.7.28 です。テーブル A には 390 万件のレコードがあり...

ランキングを取得するためのMySQLソートの例コード

コードは次のようになります。 SELECT @i:=@i+1 行番号、 if(@total=t.s_...

Vue の computed と watch の違いを分析する

目次1. 計算入門1.1、getとsetの使い方1.2. 計算された属性キャッシュ2. 時計の紹介3...

Tomcatのデフォルトプログラム公開パスの使用と変更についての説明

tomcat7 のデフォルトのプログラム公開パスは tomcat/webapps/ROOT/ です。...

CentOS で yum を使用して rabbitmq-server をインストールする方法

RabbitMQをインストールする前にSocatをインストールする必要があります。そうしないと、Ra...

IE6 フォントを定義できません: 13px サイズは無効です。IE6 は自動的に大きいフォント ソリューションを表示します。

数日前、Web ページのモジュールを調整していたとき、ページのフォント サイズを 13px に設定し...

HTML 要素 (タグ) とその使用法

a : ハイパーリンクの開始位置または宛先位置を示します。頭字語: 単語の最初の文字からなる略語を示...

HTML テーブルタグチュートリアル (3): 幅と高さの属性 WIDTH、HEIGHT

デフォルトでは、テーブルの幅と高さはコンテンツに応じて自動的に調整されます。テーブルの幅と高さを手動...

値の転送を実現するために、2つの同じレベルのコンポーネントをVueで作成します。

Vue コンポーネントは接続されているため、コンポーネント間で値を渡す必要があるのは避けられません...

CocosCreatorゲームにおける魚群アルゴリズムの詳細な説明

序文最近CocosCreatorを学びたいと思ったので、エディターをダウンロードして起動しました。誰...

Vue+el-tableはセルの結合を実現します

この記事の例では、参考までにセルの結合を実現するためのel-tableの具体的なコードを共有していま...

数千万のMySQLデータ量を素早くページ分割する方法

序文バックエンド開発では、一度に大量のデータがロードされ、メモリやディスク IO のオーバーヘッドが...

MySQL 5.7.19 インストールディレクトリに my.ini ファイルを作成する方法

前回の記事では、MySQL 5.7.19 無償インストール版 (64 ビット) の設定方法についての...

Pythonは出力をcsv操作に書き込む

以下のように表示されます。 def test_write(self): フィールド=[] field...