GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu18.04LTSにBrotli圧縮を使用してNginxをインストールする方法

Nginx (engine-x)は、オープンソースの高性能HTTPサーバー、リバースプロキシ、およびIMAP/POP3プロキシサーバーです。 Nginxの優れた機能は、安定性、豊富な機能セット、シンプルな構成、低メモリ消費です。

Brotli Googleによって作成されたオープンソースの圧縮アルゴリズムです。 Brotliは、gzipよりも優れたロスレス圧縮を提供し、現在、主要なブラウザーとWebサーバーでサポートされています。

Brotliのパフォーマンスの詳細:

  • Akamaiのブログ投稿。
  • Brotliに関するCloudflareの投稿。
  • Mozillaのブログ投稿。

このチュートリアルでは、NginxウェブサーバーでBrotli圧縮アルゴリズムのサポートを追加する方法を段階的に説明します。 brotli圧縮アルゴリズムをサポートするカスタムnginxパッケージを構築します。最新のUbuntuバージョンを使用し、さらにDebianオペレーティングシステム用のnginxパッケージをビルドします。

前提条件
  • Ubuntu 18.04
  • root権限

何をしますか?

  1. ビルドの依存関係をインストールする
  2. ngx_brotliを使用してNginxをインストールする
    • Nginxリポジトリを追加
    • Nginxとngx_brotliをダウンロード
    • ngx_brotliサポートを使用してNginxをビルドする
    • Nginxをインストールし、ngx_brotliサポートを有効にする
  3. Nginx仮想ホストを構成する
  4. テスト
ステップ1-ビルドの依存関係をインストールする

このガイドで最初に必要なことは、ビルドの依存関係をシステムにインストールすることです。

Ubuntuリポジトリを更新してから、以下のaptコマンドを使用してすべてのパッケージビルドの依存関係をインストールします。

sudo apt update
sudo apt install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip

すべてのパッケージがインストールされるのを待ちます。

ステップ2-ngx_brotliを使用してNginxをインストールします

このステップでは、Brotli圧縮アルゴリズムをサポートするカスタムnginxパッケージをUbuntuシステムにインストールします。また、公式のnginxリポジトリからダウンロードできるnginxパッケージの最新の安定バージョンを使用します。

Nginxリポジトリを追加

nginxリポジトリを追加する前に、以下のコマンドを使用してnginxキー記号を追加してください。

curl -L https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

次に、vimエディターを使用して「/etc/apt/sources.list.d」ディレクトリに新しいnginxリポジトリファイル「nginx.list」を作成します。

vim /etc/apt/sources.list.d/nginx.list

以下に構成を貼り付けます。

deb http://nginx.org/packages/ubuntu/ bionic nginx
deb-src http://nginx.org/packages/ubuntu/ bionic nginx

保存して終了します。

次に、ubuntuリポジトリを更新します。

sudo apt-get update

Nginxリポジトリが追加されました。

Nginxおよびngx_brotliソースファイルをダウンロード

次に、aptコマンドを使用してnginxリポジトリからNginxパッケージをダウンロードします。

'/ usr / local / src'ディレクトリに移動し、以下のaptコマンドを使用してNginxソースをダウンロードします。

cd /usr/local/src
sudo apt source nginx

次に、nginxに必要なすべてのパッケージ依存関係をインストールします。

sudo apt build-dep nginx -y

そして、すべてのインストールが完了したら、GitHubから「ngx_brotli」ソースコードのクローンを作成します。

git clone --recursive https://github.com/google/ngx_brotli.git

Nginxとngx_brotliがダウンロードされました。

ngx_brotliサポートを使用してNginxをビルドする

次に、デフォルトのNginxビルドルールを編集する必要があります。パッケージのビルドルールにngx_brotliを追加する必要があります。

'/ usr / local / src / nginx- *'ディレクトリに移動し、debian'rules'設定を編集します。

cd /usr/local/src/nginx-*/
vim debian/rules

これで、' config.env.nginx用の2つのビルド環境が得られます。 'および'config.env.nginx_debug '。 ngx_brotliの「--add-module=」オプションを両方の構築環境に追加します。

--add-module=/usr/local/src/ngx_brotli

保存して終了します。

これで、ngx_brotliをサポートするnginxパッケージをコンパイルしてビルドする準備が整いました。

以下のdpkgコマンドを実行します。

sudo dpkg-buildpackage -b -uc -us

注:

  • -b:バイナリのみをビルドし、ソースファイルは作成しません。
  • -uc:署名されていない.buildinfoおよび.changesファイル。
  • -us:署名されていないソースパッケージ。

ビルドが完了すると、以下に示すように、「/ usr / local/src」ディレクトリにnginx-*。debパッケージが追加されます。

ls -lah

NginxをインストールしてBrotliサポートを有効にする

ngx_brotliを使用したnginxビルドが完了しました。以下のdpkgコマンドを使用してnginx-*。debパッケージをインストールしてください。

cd /usr/local/src/
sudo dpkg -i *.deb

ngx_brotliをサポートするNginxがインストールされました。

次に、「/ etc / nginx」構成ディレクトリに移動し、構成ファイル「nginx.conf」を編集します。

cd /etc/nginx/
vim nginx.conf

以下の「http{...}」セクション内に構成を追加して、nginxでngx_brotliを有効にします。

    brotli on;
    brotli_comp_level 6;
    brotli_static on;
    brotli_types text/plain text/css application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/x-icon image/vnd.microsoft.icon image/bmp image/svg+xml;

保存して終了します。

nginx構成をテストし、エラーがないことを確認します。

nginx -t

brotli圧縮のサポートが有効になりました。

ステップ3-Nginx仮想ホストを構成する

このステップでは、ドメイン名nginx.hakase-labs.ioの新しい仮想ホストを作成しようとします。

注:

  • Brotli圧縮はHTTPSサイトのみをサポートしているため、ドメイン名の証明書ファイルがあることを確認してください。そうでない場合は、無料のLetsencryptSSL証明書を生成できます。

'/ etc / nginx'構成ディレクトリに移動し、新しい仮想ホスト構成'brotli.conf'を作成します。

cd /etc/nginx/
vim conf.d/brotli.conf

次のnginx仮想ホスト構成をそこに貼り付けます。

# Redirect HTTP to HTTPS Nginx
server { listen 80; server_name nginx.hakase-labs.io; return 301 https://$host$request_uri; } # SSL configuration server { listen 443 ssl http2; server_name nginx.hakase-labs.io;
ssl_certificate /etc/letsencrypt/live/nginx.hakase-labs.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/nginx.hakase-labs.io/privkey.pem; # Improve HTTPS performance with session resumption ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; # Enable server-side protection against BEAST attacks ssl_prefer_server_ciphers on; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5; # Disable SSLv3 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# web root directory location / { root /usr/share/nginx/html; } }

保存して終了します。

注:

  • 独自のドメインでドメイン名を変更します。
  • SSL証明書のパスを変更します。

次に、nginx構成をテストし、エラーがないことを確認してから、サービスを再起動します。

nginx -t
systemctl restart nginx

新しいnginx仮想ホストが追加されました。

ステップ4-テスト

Webブラウザーを開き、ドメイン名を入力します。私の名前は次のとおりです。

http://nginx.hakase-labs.io

これで、https接続にリダイレクトされます。ページを右クリックして、[要素の検査]をクリックします '。 'ネットワークをクリックします 'タブをクリックしてページをリロードします。

リクエストの詳細をクリックすると、以下に示すように、ウェブサーバーからすべてのリクエストとレスポンスのヘッダーが表示されます。

「応答ヘッダー」セクションに、brotliサポート用の「content-encoding:br」が表示されます。

別のテストが必要な場合は、以下に示すようにcurlコマンドを使用できます。

curl -H 'Accept-Encoding: br' -I https://nginx.hakase-labs.io

そして、brotliサポートの結果「content-encoding:br」が表示されます。

Ubuntu18.04でのBrotli圧縮サポートを使用したNginxのインストールが正常に完了しました。

参照
  • https://github.com/google/ngx_brotli
  • https://www.babak.io/blog/

Ubuntu
  1. Ubuntu18.04LTSにNginxを使用してNextcloudをインストールする方法

  2. Ubuntu20.04LTSにNginxを使用してSeafileをインストールする方法

  3. Ubuntu20.04LTSでNginxを使用してModsecurityをデプロイする方法

  1. Ubuntu16.04にNginxでMediaWikiをインストールする方法

  2. Ubuntu16.04LTSにNginxを使用してVarnishリバースプロキシをインストールする方法

  3. Ubuntu18.04LTSにNginxを使用してSeafileをインストールする方法

  1. Ubuntu15.10にNginxを使用してMagentoをインストールする方法

  2. Ubuntu15.10にNginxでMailpileをインストールする方法

  3. Ubuntu15.10でNginxを使用してRedmine3をインストールする方法