どのようにUbuntu 20.04のソースコードからNGinxを構築する


そばArman Ali
NGANXは2004年にロシアの開発者Ior Sysoevによって作成されました.彼はApacheとイライラさせられて、パフォーマンス、高い同時性と低いメモリ使用に焦点を合わせて10000の同時接続を扱うことができる交換を構築したかったです.
今日NGNXは世界のトップ1000のウェブサイトの大半をサーバーしています、そして、この成長が主に原因になっている間、NGinxが比較的始めるのも簡単です.
nbuntu 20.04にnginxをインストールする方法は2つあります.
  • オペレーティングシステムのビルドインパッケージマネージャーを介して.
  • ソースからnginxを構築することによって.
  • このガイドでは、Nbuntu 20.04のソースからnginxをビルドします.

    必要条件
    このチュートリアルを完了するには、Ubuntu 20.04サーバーが必要です.シンプルさのために、このガイドの間、ルートとして働きます.

    ステップ1 - nginxの依存性を更新してインストールする
    NGINXを最初のソースからビルドするには、NGinxに依存関係をインストールする必要があります.
    SSH端末経由でサーバーにログインします.
    ssh username@you-IP-address
    
    Ubuntuのパッケージマネージャを更新
    sudo apt-get update 
    
    さて、ソースコードコンパイラと共に開発ライブラリをインストールします.
    sudo apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev libgd-dev libxml2 libxml2-dev uuid-dev
    
    プレスY はい

    ステップ2 -ダウンロードnginxソースコードと設定
    NGNXをコンパイルするのに必要なすべてのツールがあります.
    現在、我々は彼らの公式ウェブサイトからNGinX源をダウンロードする必要があります.
    ソースコードをダウンロードするには、次のコマンドを実行します.
    wget  http://nginx.org/download/nginx-1.20.0.tar.gz
    
    我々は今、このコマンドを使用してtarballフォーマットでnginxソースコードを抽出している
    tar -zxvf nginx-1.20.0.tar.gz
    
    このコマンドを使用して抽出ディレクトリに移動します
    cd nginx-1.20.0
    
    さて、このコマンドを使用してnginxを設定するためのconfigureフラグを使用する必要があります.
    ./configure --prefix=/var/www/html --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --with-pcre  --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-http_ssl_module --with-http_image_filter_module=dynamic --modules-path=/etc/nginx/modules --with-http_v2_module --with-stream=dynamic --with-http_addition_module --with-http_mp4_module
    
    上記のコマンドでは、NGinxの設定ファイル、アクセス、およびエラーログをいくつかのNGinxのモジュールでカスタムパスを設定します.

    ステップ3 -ビルドnginx&モジュールを追加する
    nginxで利用できる設定オプションがたくさんあります.あなたが必要に応じてそれを使用することができます.NGinXで利用可能な設定オプションを見つけるには
    訪問できますnginx.org .
    nginxにあらかじめインストールされているモジュールがいくつかあります.
    デフォルトでビルドされたモジュール
    デフォルトでビルドされたモジュールを必要としない場合、--without-<MODULE-NAME> configureスクリプトのオプション.この例では、空のGIFモジュールを無効にします(単一の行としてタイプされる).
    ./configure --without-http_empty_gif_module
    
    nginxには2種類のモジュールがあります.
    静的リンクモジュール
    動的リンクモジュール
    1 -スタティックリンクモジュール
    これらのモジュールはデフォルトでロードされる
    nginxに組み込まれたほとんどのモジュールは静的にリンクされています.コンパイル時にnginxに組み込まれ、静的にnginxバイナリにリンクされます.これらのモジュールはnginxを再コンパイルするだけで無効にすることができます.
    静的にリンクされたサードパーティ製のモジュールでnginxをコンパイルするには--add-module=<PATH> configureコマンドのオプション<PATH> ソースコードへのパスです(この例はrtmpモジュールです).
    ./configure ... --add-module=/usr/build/nginx-rtmp-module 
    
    2 -動的にリンクされたモジュール
    これらのモジュールはデフォルトでロードされません.
    例えば-load_module modules/ngx_mail_module.so;nginxモジュールを共有オブジェクト(*. soファイル)としてコンパイルすることもできます.これは、モジュールがnginx設定ファイルの関連loadHumモジュールディレクティブを追加または削除することによって、いつでもロードされたりアンロードされたりすることができます.モジュール自体が動的リンクをサポートしなければならないことに注意してください.
    動的にロードされたサードパーティ製のモジュールでnginxオープンソースをコンパイルするには--add-dynamic-module=<PATH> configureコマンドのオプション<PATH> ソースコードへのパスです.
    ./configure ... --add-dynamic-module=<PATH>
    
    NginXソースのコンパイル
    カスタム設定完了後、このコマンドを使用してnginxのソースコードをコンパイルすることができます.
    make 
    
    これはかなりの時間を要します、そして、一旦、このコマンドを使用することによって従順ソースコードをインストールしてください.
    make install
    
    
    このコマンドを使用してnginxを起動します
    nginx
    
    これでnginxをインストールしました.確認するには、このコマンドを使用してnginxバージョンを確認します.
    nginx -V
    
    または保持ページnginxを参照してくださいにあなたのIPを訪問することができます.
    http://your-IP-address 
    

    ステップ4 - nginxサービスを追加する
    NGANXのカスタマイズとHTTPポート80のリスニングで構築された、次のステップはNGinxのシステムサービスを構成しています.
    より具体的には、サービスのための新しい、より人気のある標準システムサービスとしてnginxを追加されます.
    今、私たちは、システムがUbuntu 15.04以来利用可能であることに注意し続ける前に.
    NGinXサービスを作成するのは、私たちが起動して、NGINXをより標準化された方法で再装填するのを管理するのを許すだけではなく、また、非常により簡単にブートの上でnginxを始めることを許します.
    標準NGINXコマンドラインツール
    始める前に、標準的なNGNXコマンドラインツールを使用してサービス信号を実行する方法をすぐに見ましょう.
    nginxがそのプロセスをチェックして実行していることを確認できます.
    ps aux | grep nginx 
    
    ここでは、マスターとワーカーのプロセスを見ることができます.
    それで、Nginxがバックグラウンドで走っているので、停止信号を送る方法を見ましょう.標準のコマンドラインツールを使用します.
    たとえば、nginxが走っているので、このコマンドを使用してNGINXでストップシグナルを送ることができます.
    nginx -s stop
    
    Nginxが停止したり、より正確に終了している場合は、任意の保持ページを参照してくださいされませんあなたのIPアドレスを訪問してNGinxステータスを確認することができます.
    あなたは再び使用してnginxを起動することができます
    nginx -s start
    
    次に、システム管理サービスを追加しましょう.
    サービスを有効にするには、オペレーティングシステム全体で同じ小さなスクリプトを追加する必要があります.
    ナノエディタを使用してnginx systemdユニットファイルを作成します
    nano /lib/systemd/system/nginx.service
    
    ペーストし、このスクリプトをペーストする
    [Unit]
    Description=The NGINX HTTP and reverse proxy server
    After=syslog.target network-online.target remote-fs.target nss-lookup.target
    Wants=network-online.target
    
    [Service]
    Type=forking
    PIDFile=/var/run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t
    ExecStart=/usr/sbin/nginx
    ExecReload=/usr/sbin/nginx -s reload
    ExecStop=/bin/kill -s QUIT $MAINPID
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    
    カスタム設定パスに従ってpidfileの場所を変更できます.
    さて、キーを押してファイルを保存しますCLR+X, Y, そして、このファイルを保存するために入力します.
    今すぐあなたのnginxを管理することができます
    systemctl restart nginx
    
    また、NGinxの状態をチェックすることもできます.
    systemctl status nginx
    
    これは私たちにNGINXサーバのステータスの本当に有益なプリントアウトを与えます.

    ステップ5 -ブート時にnginxを有効にする
    今、私たちが言及したように、システムサービスの他の非常に有用な機能は、NGINXが自動的に起動するときに、システムを起動するときに、このマシンがシャットダウンまたは再起動NGinxはもはや実行されません起動することです.
    特にWebサーバにとっては特に良いことではありません.
    起動時にこのコマンドを実行できるようにします.
    systemctl enable nginx
    
    それで、私たちはスタートアップの確認を得ます.
    マシンの再起動を再起動することでテストできます.

    結論
    このガイドでは、我々はNbuntu 20.04のソースからNGinxを構築している.何か質問があればコメント欄でお知らせください.