テクニカルコーナー|「ソースプロダクションコントロール」シリーズ(2)CentOS8でのNginx1.18の使用:コンパイル、インストール、および基本的な使用

これは、Huixiang TechnologyCornerの「SourceProductionControl」シリーズの2番目の記事です。
著者のメモ: Huixiangテクノロジーコーナーの「ソース生産管理」トピックでは、大まかな分類としてオペレーティングシステム、ミドルウェア、データベース、プログラムアプリケーションなどを使用して、オープンソース、ローカリゼーション、独立した制御可能なテクノロジーの3つの方向に焦点を当てます。テクノロジーの開発動向、コアテクノロジーの詳細な使用、テクノロジーの全体的な構造の体系的な要約は、関連テクノロジーの学習者にかなりの情報を提供し、読者に個人的な同期学習と要約ノートを提供します。

この記事では、CentOS8でのNginx1.18の基本的なインストールと基本的な使用法を紹介および要約します。今後、CentOS8でのNginx1.18の使用に関して、その使用法の要約とパフォーマンスの調整に関する一連の記事が次々に更新されます。どうぞお楽しみに。

Nginxとは

Nginx(「エンジンX」と発音)は、非同期フレームワークを備えたWebサーバーであり、リバースプロキシ、ロードバランサー、およびHTTPキャッシュとしても使用できます。このソフトウェアはIgorSesoyevによって作成され、2004年に初めて一般にリリースされました。同名の会社が2011年に設立され、サポートを提供しています。 2019年3月11日、NginxはF5ネットワークに6億7000万米ドルで買収されました。 Nginxは無料のオープンソースソフトウェアであり、BSDのようなライセンスの条件の下でリリースされます。ほとんどのWebサーバーは、通常[負荷分散](https://cloud.tencent.com/product/clb?from=10680)デバイスとしてNginxを使用します。

オープンソース版の公式サイトはnginx.orgです。商用版の公式サイトはnginx.comです。

しかし、Nginxについて言えば、NginxがF5に買収された後、Nginxの作者が逮捕されたことに言及する必要があります。外国メディアの報道によると、2019年12月12日、ロシアの警察は商用サーバー会社Nginxを検索し、その場で2人の共同創設者を連れ去りました。 。この件に関しては、記事[「戦争の流行の下で私たちを変えるかもしれないもの」](http://mp.weixin.qq.com/s?__biz=MjM5NDAwNTQ0MA==&mid=2249483985&idx=1&sn=84b009e4e522929ad82cd0925a6573e1&chksm=a56eae7e921927683cda98fc32743681346e60155a296aece628f498838916527e5be8453b8a&scene=21#wechat_redirect)の例として、個人的なブランディングと口コミ形成のリスクのいくつかを説明するためにも使用しました。興味のある方はクリックしてご覧ください。

Nginxの場合、その迅速な開発、優れたパフォーマンス、およびオープンソースにより、Webサービスの提供、負荷分散、およびリバースプロキシのシナリオで多くの市場を獲得し、中国人によって開発されたOpenRestyやAliによるオープンソースなどの優れた二次開発バージョンも導き出しました。 Tengineなど。 「CentOS8でのNginx1.18の使用」シリーズの後、2つの優れた二次開発を紹介する機会を選択します。

CentOS8にNginx1.18をインストールします

yum -y install nginxを使用してインストールできますが、ミラーソースのプリコンパイルバージョンである「ソースプロダクションライブラリ」シリーズ「CentOS8 FirstMet」の最初の記事で紹介されています](http://mp.weixin.qq.com/s?__biz=MjM5NDAwNTQ0MA==&mid=2249484093&idx=1&sn=25e98d52ec24f840e83a78d29a6c7f4f&chksm=a56eaf92921926840f0a8ae2592af72ff4c290a3053323bcdde29ab8bbdae54b81c10af8a87a&scene=21#wechat_redirect) 1.14であり、記事の公開日現在、Nginxの安定バージョンが1.18に更新され、メインラインバージョンが1.19に更新されているため、公式Webサイトの安定ソースコードバージョンを使用してダウンロードおよびコンパイルします。

Nginxバージョンのダウンロードページ、投稿(2020-07-07)の時点で、安定バージョンは1.18に更新され、メインラインバージョンは1.19に更新されています。

ヒント:安定版とメインライン版について。前者は、Nginxが更新されて重大度の高いエラーの修正を受け取りますが、最新の機能は使用しません。バージョン番号の2桁目は偶数で表されます。後者は、Nginxが更新されたアクティブな開発ブランチであり、最新の機能とバグ修正が追加されており、バージョン番号の2桁目は奇数で表されています。ただし、Nginxでは、「安定」とは機能と更新頻度を指し、ソフトウェアの品質とは関係ありません。安定したブランチは、ライフサイクル中に新しい機能を受け取ることはなく、通常、重大なバグを修正するために1つまたは2つの更新のみを受け取ります。安定したブランチのライフサイクルは通常1年です。毎年4月に、職員は現在の安定したブランチのメンテナンスを停止し、バグ修正を提供しなくなります。

nginx-1.18.0.tar.gzをダウンロードして解凍します。

wget http://nginx.org/download/nginx-1.18.0.tar.gz;
tar -zxvf nginx-1.18.0.tar.gz;

ディレクトリ cd nginx-1.18.0を入力します。ディレクトリ構造は、次のとおりです。

合計金額1204
drwxr-xr-x6100110013267月718:50 auto
- rw-r--r--1100110013028634月2122:09 CHANGES
- rw-r--r--1100110014622134月2122:09 CHANGES.ru
drwxr-xr-x 210011001168 7778年7月:50 conf
- rwxr-xr-x11001100125024月2122:09 configure
drwxr-xr-x410011001727月718:50 contrib
drwxr-xr-x 210011001407Month 718:50 html
- rw-r--r--11001100113974月2122:09 LICENSE
drwxr-xr-x 210011001217 718:50 man
- rw-r--r--110011001494月2122:09 README
drwxr-xr-x 91001100191 7718年7月:50 src

confフォルダーはNginxの初期構成ファイルであり、 contribフォルダーには3人のオープンソース寄稿者によって寄稿された3つのプラグインのコンテンツが含まれ、 htmlフォルダーはデフォルトのサイトファイルコンテンツであり、 srcフォルダーはNginxソースコードです。 。 configureファイルはコンパイルされた構成ファイルです。

Nginxインストールパッケージ内の次のファイルをパスにコピーして、vimが nginx.confの言語構文を強調表示して分析できるようにします。

cp -r contrib/vim/* ~/.vim/;

. / configure --helpは、Nginxコンパイルサポートパラメータリストを表示できます。 configureファイルが設定されると、Nginxのインストールに必要なファイルが objsファイルに生成され、その中で ngx_modules.cが、次のコンパイルを決定します。どのモジュールをNginxにコンパイルする必要がありますか。

この記事では、モジュールのコンパイルと使用については説明していません。最も単純なコンパイル設定を使用して、コンパイルとインストールを行います。

. /configure --prefix=/usr/local/nginx;

次のエラーが報告された場合は、コマンド yum -y install pcre-devel opensslopenssl-develを実行してインストールしてください。

...
checking for PCRE library ... not found
checking for PCRE library in/usr/local/... not found
checking for PCRE library in/usr/include/pcre/... not found
checking for PCRE library in/usr/pkg/... not found
checking for PCRE library in/opt/local/... not found

. /configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

以下の内容が表示されたら、 configureファイルの設定は完了です。

Configuration summary
 + using system PCRE library
 + OpenSSL library is not used
 + using system zlib library

 nginx path prefix:"/usr/local/nginx/"
 nginx binary file:"/usr/local/nginx/sbin/nginx"
 nginx modules path:"/usr/local/nginx/modules"
 nginx configuration prefix:"/usr/local/nginx/conf"
 nginx configuration file:"/usr/local/nginx/conf/nginx.conf"
 nginx pid file:"/usr/local/nginx/logs/nginx.pid"
 nginx error log file:"/usr/local/nginx/logs/error.log"
 nginx http access log file:"/usr/local/nginx/logs/access.log"
 nginx http client request body temporary files:"client_body_temp"
 nginx http proxy temporary files:"proxy_temp"
 nginx http fastcgi temporary files:"fastcgi_temp"
 nginx http uwsgi temporary files:"uwsgi_temp"
 nginx http scgi temporary files:"scgi_temp"

次に、 makeコマンドを実行します。実行後、コンパイルされた nginxバイナリファイルとオブジェクトファイルが objsフォルダに表示されます。エラーなしは正常を示します。 Nginxを初めてインストールする場合は、 makeinstallを実行してインストールします。 Nginxをアップグレードする場合は、 make installを使用しないでください。このディレクトリで生成された nginxバイナリファイルを、既存のNginxバイナリファイルの対応するディレクトリにコピーする必要があります。

CentOS8でのNginx1.18の最初の使用

インストールが完了したら、次のコマンドを入力してNginxを起動します。

/usr/local/nginx/sbin/nginx;

Nginxの基本的な命令形式は nginx -s reloadであり、具体的な命令は次のように説明されています。

図に示すように、ブラウザでIPにアクセスします。アクセスできれば正常です。

図に示すように、ブラウザでIPにアクセスします。アクセスできる場合は正常です。

ps -ef | grep nginxを使用して、プロセスを表示します。

root      85561019:24?00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody    85578556019:24?00:00:00 nginx: worker process
root      85618702019:25 pts/000:00:00 grep --color=auto nginx

基本的なNginxがインストールされたので、完全な nginx.confファイルは次のようになります。

# user  nobody;
worker_processes  auto;

error_log  logs/error.log;
# error_log  logs/error.log  notice;
# error_log  logs/error.log  info;

pid        logs/nginx.pid;

events {
 worker_connections  1024;}

http {
 include       mime.types;
 default_type  application/octet-stream;

 log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';

 access_log  logs/access.log  main;

 server {
  listen       80;
  server_name  localhost;

  access_log  logs/host.access.log  main;

  location /{
   root   html;
   index  index.html index.htm;}

  error_page   500502503504/50x.html;
  location =/50x.html {
   root   html;}}}

Nginx構成構文には、次の規則があります。

  1. ログファイルは、命令と命令ブロックで構成されています。
  2. 各命令は ;で終わり、命令とパラメーターはスペースで区切られます。
  3. 命令ブロックは、 {}とともに複数の命令を編成します。
  4. includeステートメントを使用すると、複数の構成ファイルを組み合わせて保守性を向上させることができます。
  5. #を使用してコメントを追加し、読みやすさを向上させます。
  6. $を使用して変数を呼び出します。
  7. 一部のコマンドのパラメーターは、正規の式をサポートしています。

Nginxにはさまざまなコマンドブロックがあり、その中で「http」ブロックはこれがHTTPプロトコル処理ブロックであることを示し、「upstream」はアップストリームサービスによって提供される構成情報、場所に対応するURLの式、サーバーは1つまたはグループのドメインに対応します。 /ドメイン名アクセス。

以下は、構成ファイルセクションのパラメーターの説明です。

pid、 worker_connectionsなどの他のパラメータ、および server、 upstream、 locationコマンドブロックに関しては、後続の「CentOS8でのNginx1.18の使用」シリーズの記事で使用法を紹介およびデモンストレーションします。 。

参照

  1. Nginxメインラインバージョン1.17.0がリリースされ、1.14安定ブランチがメンテナンスを停止しました
  2. Index - nginx.org
  3. Core functionality - nginx.org

Recommended Posts

テクニカルコーナー|「ソースプロダクションコントロール」シリーズ(2)CentOS8でのNginx1.18の使用:コンパイル、インストール、および基本的な使用
「ソースプロダクションコントロール」シリーズ(2)CentOS8でのNginx1.18の使用:コンパイル、インストール、および基本的な使用
CentOs7.3はNginx1.9.9をコンパイルしてインストールします
テクノロジーコーナー|「ソースプロダクションコントロール」シリーズ(1)CentOS8の最初の知り合い
CentOS6.xはNginxをコンパイルしてインストールします
テクニカルコーナー| CentOS8でのElasticStackの使用:Elasticsearch / Kibana7.8の展開と認証の構成
CentOS7にDockerをインストールして使用する方法
「ソースプロダクションコントロール」シリーズ(1)CentOS8の最初の知り合い
CentOS8にComposerをインストールして使用する方法
CentOS8にCurlをインストールして使用する方法
CentOS 8 / RHEL8にCockpitをインストールして使用する方法
オープンソースEDAツールをコンパイルしてインストールします-CentOS8のSurelog
CentosはGitをコンパイルしてインストールします
Centos7はntp-4.2.8p11をコンパイルしてインストールします
CentOS6.9はpythonをコンパイルしてインストールします
CentOS6はpython3をコンパイルしてインストールします
CentOS7にNginxサーバーをインストールします
CentOSYumはMySQL5.6をコンパイルしてインストールします
Centos5.2でLAMPをコンパイルしてインストールします
CentOS8インストールGitと基本構成
CentOSでNginxとuを使用する
CentOS7はL(A | N)MP環境をコンパイルしてインストールします
CentOS8にNginxをインストールする方法
CentOS7.3はiptablesをインストールして詳細に使用します
CentOS6.8でdockerをインストールして使用する
CentOS7はSQLServerをインストールして使用します
LinuxCentOS6はPytをコンパイルしてインストールします
CentOS7でlibmodbusライブラリをコンパイルしてインストールします
CentOS7.5ソースコードはmysql5.7.29をコンパイルしてインストールします
ubuntuと基本的な使用法にdockerをインストールします
Centos7はMySQL8問題レコードをコンパイルしてインストールします
Centos8でnodejsとyumをコンパイルしてインストールします
CentOS7.4ソースコードはMySQL8.0をコンパイルしてインストールします
MacにVMwareFusionとCentOS-7をインストールする
CentOS7にElasticsearchをインストールして構成する方法
UbuntuLinuxにGitとGitHubをインストールして使用する
Ubuntu20.04にDockerをインストールして使用する方法
CentOS8にVNCをインストールして構成する方法
Ubuntu18.04にCurlをインストールして使用する方法
Ubuntu18.04にComposerをインストールして使用する方法
Ubuntu18.04にWineをインストールして使用する方法
CentOS8にRedisをインストールして構成する方法
CentOS8にNode.jsとnpmをインストールする方法
Ubuntu20.04にComposerをインストールして使用する方法
Ubuntu14.04にBaasBoxをインストールして使用する方法
Ubuntu16.04にPostgreSQLをインストールして使用する方法
centos7.2.1511にjdk1.8.0_151とmysql5.6.38をインストールする方法
CentOS6にphpMyAdminをインストールして構成する方法
Centos6.5は、LNMPアーキテクチャのWeb環境をコンパイルしてインストールします
CentOS8にOwncloudをインストールして構成する方法
Centos7.2は、phpMyAdminをビルドする方法をコンパイルしてインストールします
centosにtomcatをインストールおよびアンインストールする方法
Ubuntu16.04にDockerをインストールして使用する方法
CentOS8にRedmineをインストールして構成する方法