DebianでNginx用の動的ngx_pagespeedモジュールをコンパイルする方法の説明

目的:動的モジュールを構築するための手順を提供し、DebianリポジトリからインストールされたNginxの動的モジュールを構築する原理を理解すること。



対象読者:サーバー管理者、上級サイト管理者、SEOオプティマイザー、およびGoogle PageSpeedサービスから良い成績を得たい人だけ。



このトピックに関する多くの記事が検索にありますが、私の意見では、当然のことながら単一の記事は公開されていません。 はい、説明なし。 経験の浅いユーザーにとっては、これは難しい場合があります。また、ほとんどの記事では、モジュールと一緒にNginxをビルドする方法について説明していますが、動的なモジュールをビルドできることはごくわずかです。



アクションプランは次のとおりです。



1. vpsを1時間レンタルします。

2.レンタルvps で、コンバット1で使用されたNginxの同じバージョンのダイナミックモジュールをアセンブルします( 重要!!! Nginxのダイナミックモジュールのサポートはバージョン1.9.11から登場しました )。

3.モジュールを新しいサーバーにスローします。

4. Nginxを構成します。

5.設定を適用します。

6. Nginxのバージョンをフリーズします( これを行わないと、Nginxの次の更新でサーバーがクラッシュします。コンパイルされたモジュールは特定のバージョンのNginxでのみ動作します。アップグレードする場合は、新しいバージョン用にモジュールをコンパイルしてアップグレードします )。



または、更新された新しいモジュールをタイムリーに追加します。



利点は、バトルサーバーが変更されないことです。たとえば、ngx_pagespeedが気に入らない場合は、バトルサーバーを構成する行とモジュール自体を削除するだけです。 Nginxで複数のサーバーを使用する場合、それらのモジュールを一度にコンパイルできます。



同様の記事への便利なリンクですが、私の意見では十分に開示されていません:



Ubuntu 16.04にNginx ngx_pagespeedモジュールをインストール

NginxとGoogle PageSpeedをDebian / Ubuntuにインストールする方法

NGINXの設定



公式リンクngx_pagespeed

ngx_pagespeed-gihub

ngx_pagespeedドキュメント



命令自体に渡します。



sshを介してテストサーバーに接続します。



apt-srcをインストールします。



apt install apt-src
      
      





ソースコードリポジトリとパッケージリポジトリを必要なバージョンのNginxに追加します。Nginx/ 1.13.5があります



 echo -e 'deb-src http://ftp.ru.debian.org/debian sid main\ndeb http://ftp.ru.debian.org/debian sid main' >> /etc/apt/sources.list
      
      





パッケージキャッシュを更新します。



 apt update apt-src update
      
      





Nginxソースを現在のフォルダーにダウンロードします。



 apt-src install nginx
      
      





コマンドの実行プロセスでは、すべてのソースがダウンロードされるだけでなく、必要な依存関係もすべてインストールされます。



モジュールに必要な依存関係をインストールします。



 apt install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip ca-certificates
      
      





モジュールの現在のバージョンを確認してください。



インストールするバージョンを指定します。



 NPS_VERSION=1.12.34.3-stable
      
      





モジュールのソースをダウンロード:



 wget https://github.com/pagespeed/ngx_pagespeed/archive/v${NPS_VERSION}.zip
      
      





現在のフォルダーに解凍します。



 unzip v${NPS_VERSION}.zip
      
      





アセンブリのソースを準備します。



 cd ngx_pagespeed-${NPS_VERSION}/ NPS_RELEASE_NUMBER=${NPS_VERSION/stable/} psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_RELEASE_NUMBER}.tar.gz [ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL) wget ${psol_url} tar -xzvf $(basename ${psol_url})
      
      





ここで、モジュールに関する情報をrawに追加して、Nginxと一緒になるようにします。まず、rawモジュールへのパスを見つけます。



 pwd nano ../nginx-1.13.5/debian/rules
      
      





最初のコマンドの後に強調表示されたパスがコピーされ、ルールに追加されます。



 --add-dynamic-module=/root/ngx_pagespeed-1.12.34.3-stable
      
      





画像



前のレベルに戻るアセンブリに進みます。



 cd ../ apt-src build nginx
      
      





組み立てプロセス中に質問がありますが、いいえと答えます。



画像



アセンブリが成功した後、次の場所でモジュールを見つけました。



 ./nginx-1.13.5/debian/build-extras/objs/ngx_pagespeed.so
      
      





バトルサーバーで、次のフォルダーに配置します。



 /usr/lib/nginx/modules
      
      





さらにファイルで:



 /etc/nginx/nginx.conf
      
      





モジュールのロードを追加:



 load_module modules/ngx_pagespeed.so;
      
      





すべてのサイトの作業でモジュールを使用する場合は、これらの2行を同じ場所で指定します。

指定したフォルダーが存在しない場合は、作成してnginxユーザー権限を割り当てます。



 mkdir -p /var/cache/nginx/ngx_pagespeed chown www-data:www-data /var/cache/nginx/ngx_pagespeed
      
      





 # Pagespeed pagespeed on; pagespeed FileCachePath /var/cache/nginx/ngx_pagespeed;
      
      





画像



モジュールを機能させるサイトの仮想ホストで、次を追加します。



 location ~ "\.pagespeed\.([az]\.)?[az]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; } location ~ "^/pagespeed_static/" { } location ~ "^/ngx_pagespeed_beacon$" { }
      
      





動作しないサイトの仮想ホストで、次を追加します。



 pagespeed off;
      
      





あなたが成功しなかったならば、私はどんなコメントでもうれしいです、書きます。 質問が生じたら記事を補足します。



All Articles