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に関する質問

推薦する

HTMLのマーキータグは、シームレスなスクロールマーキー効果を実現します。

<marquee> タグはペアで表示されるタグです。最初のタグ <marquee...

Tomcat 7.0 で仮想ディレクトリを設定し、仮想パスを構成する方法

Tomcat7.0は仮想ディレクトリを設定します(1)現在、当社のウェブサイトはデフォルトのディレク...

Docker ポート マッピングと外部アクセス不可の問題

Docker コンテナはサービスを提供し、ポート 8888 をリッスンします。外部からアクセスできる...

HTML での位置の使用に関する簡単な紹介

昨日 HTML を少し学んだばかりで、JD.com の検索バーを作るのが待ちきれませんでした。 作っ...

ドラッグ効果を実現するための js オブジェクト指向メソッド

この記事では、ドラッグアンドドロップをJSオブジェクト指向で実装するための具体的なコードを参考までに...

独自のサーバーを素早く構築する方法の詳細なチュートリアル(Java 環境)

1. サーバーの購入1. 私はAlibaba Cloudのサーバーを選択しました。学生向けで月額9...

JS の効率的なマジック演算子の概要

JavaScript は現在、毎年新しいバージョンがリリースされており、より便利で効率的な新しい演算...

キャンバスでPS消しゴムスクラッチカードの効果を実現するためのJSの使用方法の詳細な説明

目次効果のデモンストレーション:メインJSコード実装 <div class="box...

HTML チュートリアル: DOCTYPE の省略形

HTML コードを書くとき、最初の行は DOCTYPE にする必要がありますが、DOCTYPE は通...

LinuxシステムでFuserコマンドを使用する方法

Fuser コマンドとは何ですか? fuser コマンドは、特定のファイル、ディレクトリ、またはソケ...

docker と docker-compose による eureka の高可用性の実現の詳細な説明

最近、新しいプロジェクトでは springcloud と docker が使用されています。この 2...

ページのキャッシュを防ぐソリューション

解決: <head> に次のコードを追加します。コードをコピーコードは次のとおりです。 ...

Node.js http モジュールの使用

目次序文ウェブHTTP サーバーファイルサーバー練習する序文Node.js 開発の目的は、JavaS...

Linux の wget コマンドの詳細な紹介

目次まずwgetをインストールするヘルプマニュアルを見る1. wgetを使用して単一のファイルをダウ...

HTML テーブル マークアップ チュートリアル (30): セルの暗い境界線の色属性 BORDERCOLORDARK

セルでは、暗い境界線の色を個別に定義できます。基本的な構文<TD ボーダーコロダーク=colo...