LinuxにNginxをインストールする正しい手順

LinuxにNginxをインストールする正しい手順

序文

私のように、Java バックエンドに勤勉な人であれば、多数のプロジェクト機能を実装することに加えて、プロジェクトの展開と運用および保守も考慮する必要があります。新しいサーバーに新しい Nginx をインストールします。インストール前にオンライン チュートリアルを確認してください。さまざまなチュートリアルやインストール方法を見ると、どの方法が最適か、どの方法が自分に最も適しているかが常に疑問に思うでしょう。次に、さまざまな Nginx のインストール方法を分析し、それぞれがどのような状況に適しているかを確認しましょう。

システムバイナリソースを使用してインストールする

Ubuntu/Debianの場合

sudo apt-get でnginxをインストールします

またはRedHat/CentOS

sudo yum nginxをインストール

この方法は最も簡単で早い方法ですが、最善の方法ではありません。この主な問題については以下で説明します。

アドバンテージ

  • インストールバイナリの依存関係はすべて処理されており、互換性の問題を心配する必要はなく、すぐに使用できます。
  • Nginxの接続設定、ユーザー権限、これらに対処する必要はありません。あなたのために書かれています
  • Nginxのバグメンテナンスやアップグレードを心配する必要はありません。最新のシステムを入手するだけです。
  • アンインストールは簡単で、コマンド1つだけです
  • ログのメンテナンスは簡単で、その日のログを自動的に切り捨て、圧縮して保存します。

欠点

  • インストールバージョンを個別に選択できない
  • コンパイルされたモジュールを個別に選択することはできません
  • 機能拡張が面倒になり、再コンパイルが必要になる
  • ディレクトリ構造は複雑で、設定ファイルは/etc/にあり、デプロイメントファイルは/var/wwwにあります。
  • サービスの再起動と構成の変更にはルート権限が必要です
  • コンパイルとインストールのパフォーマンスが悪い

Linux 初心者の場合は、このインストール方法を使用することを強くお勧めします。コンパイルの依存関係を心配する必要がなく、インストール後すぐに使用できます。ただし、サーバーが実稼働環境で使用されており、開発中であり、徐々に改善されている場合は、この方法はお勧めできません。将来的にはサードパーティのモジュールが追加される可能性があり、その場合は必ずコンパイルしてインストールする必要があります (以下で説明)。サーバーを再起動するときは、root ユーザーを使用せず、sudo を使用して一時的に root 権限を取得します。サーバーが静的ファイルと Web スペースを展開するために使用されており、通常は FTP ツールを使用してファイルを展開する場合は、この方法を使用しても問題はありません。

コンパイルしてインストールする

メリットとデメリットについては書きませんが、基本的には上記の逆になります。この方法でインストールするには、Linux コンパイルに関するある程度の知識が必要であり、中級レベルの Linux ユーザーのみが扱えます。オンラインのチュートリアルのほとんどでは、コンパイル依存関係を /usr/local/ に直接インストールしますが、これは良い方法ではありません。将来これらの依存関係をアンインストールしたい場合、非常に面倒になります。ディレクトリ カテゴリを単純に削除することはできません。一部の Linux ディストリビューションでは、インストール ファイルを構成ファイルに書き込みますが、これらの構成ファイルがどこにあるかわかりません。依存バージョンが他のソフトウェアに影響を与える場合、バージョンの問題にどのように対処するか。 Nginx をインストールしたかっただけでしたが、多くの問題が発生しました。

コンパイル環境の準備

始める前に、Linux システムに gcc、make、wget、g++ がインストールされていることを確認してください。

ダウンロードしたファイルを保存するディレクトリを作成し、依存ライブラリのソースファイルをダウンロードするディレクトリを入力します。

主にSSLモジュールの暗号化、httpのサポートのためにopensslをダウンロードします

https://www.openssl.org/source/openssl-1.0.2s.tar.gz をダウンロードしてください

アドレスリダイレクト、アドレス書き換え、ローカライズ命令、正規表現のサポートを実装するには、pcre をダウンロードしてください。

https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz をダウンロードしてください

zlib gzip 圧縮モジュールをダウンロード

https://zlib.net/zlib-1.2.11.tar.gz をダウンロードしてください

Nginxをダウンロード

http://nginx.org/download/nginx-1.17.1.tar.gz をダウンロードしてください

tarを使用してすべてのファイルを解凍します

ls *.tar.gz | xargs -n1 tar xzvf

コンパイルオプション

./configure を使用して、ソースおよび構成ファイルへのパス、コンパイラ オプション、接続処理方法、モジュール リストなど、さまざまな Nginx パラメータを設定するスクリプト。スクリプトは、コードをコンパイルして Nginx Open Source をインストールするために必要な Makefile を作成して終了します。

パラメータ説明する
--prefix=<パス> Nginx インストール ディレクトリの基本的な場所、および他の configure スクリプト オプションによって設定されたすべての相対パス。デフォルト値 /usr/local/nginx
–sbin-path=<PATH Nginx バイナリ実行ファイルの名前。デフォルト値: <prefix>/sbin/nginx
--conf-path=<パス> Nginx 構成ファイルの名前。ただし、nginx コマンドラインのオプションを使用して別のファイルを指定することにより、起動時にこの値をいつでも上書きできます。デフォルト: <prefix>conf/nginx.conf -c <FILENAME>
--pid-path=<パス> nginx マスター プロセスのプロセス ID を保存するために使用される nginx.pid ファイルの名前。インストール後、Nginx 構成ファイルの pid ディレクティブを使用してファイル名へのパスを変更できます。デフォルト値: <prefix>/logs/nginx.pid
--error-log-path=<パス>エラー、警告、診断データのログ ファイルの名前。インストール後、Nginx 構成ファイルの error_log ディレクティブを使用してファイル名を変更できます。デフォルト値: <prefix>/logs/error.log
–http-log-path=<パス> HTTP サーバー要求のメイン ログ ファイルの名前。インストール後は、Nginx 構成ファイルの access_log ディレクティブを使用して、いつでもファイル名を変更できます。デフォルト値: <プレフィックス> /logs/access.log
--user=<名前> Nginx 実行プロセスの所有者。インストール後、Nginx 構成ファイルのユーザー ディレクティブを使用して名前を変更できます。デフォルト: なし
–グループ=名前nginx 実行プロセスの所有者ユーザー グループ。インストール後、NGINX 構成ファイルのユーザー ディレクティブを使用して名前を変更できます。デフォルト値: --user オプションで設定された値
--with-pcre=<パス> PCRE ライブラリ ソース コードへのパス。これは、location ディレクティブと Rewrite モジュールでの正規表現のサポートに必要です。
--pcre-jit を使用する「ジャストインタイムコンパイル」サポート付きの PCRE ライブラリをビルドします (pcre_jit ディレクティブ)
--with-zlib=<パス> Gzip モジュールに必要な zlib ライブラリのソースコード パス
--http_ssl_module を使うHTTPSサポートを有効にする
--http_v2_モジュールHTTP/2リクエストのサポートを有効にする

コンパイルパラメータが多すぎるので、一つ一つ挙げることはできません。興味のある学生は

nginxの公式サイトを見る

コンパイルしてインストールする

./configure \
  --with-openssl=../openssl-1.0.2s \
  --with-pcre=../pcre-8.43 \
  --with-zlib=../zlib-1.2.11 \
  --with-pcre-jit --user=admin \
  --prefix=/home/admin/nginx \
  --http_ssl_module \ で始まる
  --http_v2_module を使用する

依存関係が正常であることを示す次の情報を出力します。

構成の概要
 + PCRE ライブラリを使用: ../pcre-8.43
 + OpenSSL ライブラリを使用: ../openssl-1.0.2s
 + zlib ライブラリを使用: ../zlib-1.2.11
 
 nginx パスプレフィックス: "/home/admin/nginx"
 nginx バイナリ ファイル: "/home/admin/nginx/sbin/nginx"
 nginx モジュール パス: "/home/admin/nginx/modules"
 nginx 設定プレフィックス: "/home/admin/nginx/conf"
 nginx 設定ファイル: "/home/admin/nginx/conf/nginx.conf"
 nginx pid ファイル: "/home/admin/nginx/logs/nginx.pid"
 nginx エラー ログ ファイル: "/home/admin/nginx/logs/error.log"
 nginx http アクセス ログ ファイル: "/home/admin/nginx/logs/access.log"
 nginx http クライアント リクエスト ボディの一時ファイル: "client_body_temp"
 nginx http プロキシ一時ファイル: "proxy_temp"
 nginx http fastcgi 一時ファイル: "fastcgi_temp"
 nginx http uwsgi 一時ファイル: "uwsgi_temp"
 nginx http scgi 一時ファイル: "scgi_temp"

コンパイル

作る

インストール

インストールする

権限を設定する

Linux では一般ユーザーが設定されており、1024 未満のポートを占有できないため、nginx を直接起動すると権限不足エラーが発生します。 nginx を root ユーザーに割り当て、特別な権限を割り当てます。

sudo chown ルート nginx
sudo chmod u+s nginx

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • LinuxにNginxを素早くインストールする方法
  • LinuxにNginxをインストールする詳細な手順
  • Linux 環境に nginx をインストールするチュートリアル

<<:  MySQL 一時テーブルの簡単な使用法

>>:  アニメーション効果のようなVueトランジションの例

推薦する

htmlハイパーリンクaのクリックイベントの後、hrefで指定されたアドレスにジャンプします。

場合によっては、ジャンプを完了するために href の代わりにハイパーリンク <a> を...

事例を通してLinux NFSの仕組みを詳細に分析

前回の記事に引き続き、web02 サーバーを作成し、web01 サーバーと web02 サーバーの ...

h1、h2、h3タグを適切に使用する

Web ページを作成する過程では、<h1>、<h2>、<h3> ...

Eclipseを使用してMySQLデータベースに接続する方法を説明します

序文常にエラーが発生するため、MySQL データベースに接続するプロセスを記録します。接続プロセス1...

HTML テーブル マークアップ チュートリアル (9): セル間隔属性 CELLSPACING

テーブルがコンパクトになりすぎないように、テーブル内のセル間に一定の距離を設定できます。基本的な構文...

MySQL データベース開発の 36 の原則 (要約)

序文これらの原則は実際の戦闘から要約されています。あらゆる原則の背後には血なまぐさい教訓があるこれら...

Linux で NFS ファイル共有サーバーを構築するための詳細な手順

Linux が NFS サーバーを構築異なるオペレーティング システム間でデータを共有するために、通...

純粋な CSS3 でペットの鶏のサンプルコードを実現

最近、CSS3に関する知識や記事をたくさん読んできましたが、CSS3はとても便利に使えると思います。...

Linux システム MySQL8.0.19 クイックインストールと構成チュートリアル図

目次1. 環境の紹介2. MySQL-8.0.19をインストールする3. MySQLを設定する1. ...

React スキャフォールディングのパスエイリアスを設定する方法

この記事を書いている時点でのReactのバージョンは16.13.1です1 npm run eject...

JavaScript スタイル オブジェクトと CurrentStyle オブジェクトのケース スタディ

1. スタイルオブジェクトスタイル オブジェクトは単一のスタイル宣言を表し、スタイルが適用されている...

Reactは適応性の高い仮想リストを実装する

目次変換前:変換後: 0x0の基本0x1 「固定高さ」の仮想リストを実装する原理:最適化: 0x2 ...

Vue ディレクティブ v-html と v-text

目次1. v-text テキストレンダリング命令2. v-html 1. v-text テキストレン...

JSは検証コードのランダム生成を実装します

この記事の例では、検証コードのランダム生成を実現するためのJSの具体的なコードを参考までに共有してい...

Tomcat10 Catalinaのログの文字化けの問題を解決する

実行環境、Idea2020バージョン、Tomcat10、実行時にTomcat CatalinaLog...