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

推薦する

【Webデザイン】E-WebTemplates の美しい海外の Web ページ テンプレート (FLASH+PSD ソース ファイル+HTML) を共有します

これらはすべて海外のE-WebTemplates WebサイトからのWebページテンプレートであり、...

Alibaba Cloud イメージリポジトリを使用して外部 Docker イメージを構築する方法の詳細な説明

Alibaba Cloud Image Repositoryを使用して外部イメージをダウンロードする...

Vue プロジェクトでの支払い機能の実装 (WeChat 支払いと Alipay 支払い)

目次プロジェクトにおける一般的な支払い方法Alipay決済微信ペイプロジェクトにおける一般的な支払い...

州と市町村の連携を簡単に実現するJavaScript

この記事では、省と市の簡単な連携を実現するためのJavaScriptの具体的なコードを参考までに紹介...

Linux で rpm パッケージを見つけるために CD をマウントする方法

前面に書かれたLinux を使用する際にソフトウェアをインストールする必要がある場合があります。もち...

フラッシュコンテンツの表示に使用される OBJECT タグと EMBED タグの違いの紹介

1. はじめに:ウェブページにフラッシュ コンテンツを正常に表示したい場合は、ページ上のフラッシュ ...

Ubuntu 16.04 で FTP サーバーを構築するチュートリアル

Ubuntu 16.04 FTP サーバーをビルドするftpをインストールするftp をインストール...

Linuxブートサービスを起動する2つの方法

目次rc.local メソッドchkconfig メソッドrc.local メソッド1 まず自動的に...

mysql 8.0.20 winx64.zip 圧縮版のインストールと設定方法のグラフィックチュートリアル

mysql 8.0.20 winx64.zip圧縮版のインストールチュートリアルは以下のように記録さ...

Vue のフィルターウィジェットの詳細な使用方法

この記事では、参考までにVue More Filter Itemウィジェットの実装方法を例として紹介...

jquery-multiselect を使用した IE6 のバグの解決方法

jquery-multiselect (ドロップダウン ボックスをチェックボックス付きの複数選択コン...

MySQL ダーティ ページ フラッシュとテーブル スペースの縮小の原理の分析

mysql ダーティページWAL メカニズムにより、InnoDB はステートメントを更新するときに、...

Vueでフォーム検証を実装する方法

1. インストールと使用まず、Vue プロジェクトにインストールします。 npm インストール --...

React antdはフォームの動的な増減を実現します

以前、動的フォームを記述しているときに落とし穴に遭遇しました。インデックスの添え字をキーとして使用す...

レスポンシブなカードホバー効果を実現するための HTML+CSS

目次成し遂げる:要約:言うことはあまりありませんが、まずは効果を見てみましょう。 カードホバー、レス...