これは、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であり、具体的な命令は次のように説明されています。
nginx-?/-hはヘルプ情報を表示します。 nginx -cは、指定された構成ファイルを使用し、その後に構成ファイルのパスを続けます。 nginx -gは指定された構成コマンドであり、その後に指定する必要のある構成コマンドが続きます。 nginx-pは指定された実行ディレクトリであり、その後に実行ディレクトリパスが続きます。 nginx -sはシグナルを送信し、その後にパラメーター stopが続き、サービスをすぐに停止します。quitはサービスを整然と停止します。reloadは構成ファイルを再ロードし、 reopenはログファイルを再起動します。 nginx -t / -T構文エラーの構成ファイルをテストします。 nginx -v、nginx -Vは、Nginxのバージョン情報またはコンパイル情報を出力します。図に示すように、ブラウザで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構成構文には、次の規則があります。
;で終わり、命令とパラメーターはスペースで区切られます。{}とともに複数の命令を編成します。 includeステートメントを使用すると、複数の構成ファイルを組み合わせて保守性を向上させることができます。#を使用してコメントを追加し、読みやすさを向上させます。$を使用して変数を呼び出します。Nginxにはさまざまなコマンドブロックがあり、その中で「http」ブロックはこれがHTTPプロトコル処理ブロックであることを示し、「upstream」はアップストリームサービスによって提供される構成情報、場所に対応するURLの式、サーバーは1つまたはグループのドメインに対応します。 /ドメイン名アクセス。
以下は、構成ファイルセクションのパラメーターの説明です。
worker_processesはワーカープロセスの数を設定します。autoに設定されている場合、Nginxはマシンのコア数に応じて設定および割り当てます。特別な要件がない場合は、通常、 autoに設定することをお勧めします。 error_logは、エラーログのパスとレベルを設定します。レベルは、 debug、 info、 notice、 warn、 error、 crit、 alert、 emergです。性別は降順で表示されます。公式文書の説明によると、一定のレベルを設定することの意味は、このレベル以上のログがログファイルに出力されることです。たとえば、「info」を設定すると、それ自体と「notice」、「warn」、「error」が含まれます。 、 crit、 alert、 emerg`がすべてリストされます。 2番目のフィールドが空の場合、デフォルトは「エラー」です。 log_format main'XXX'はログ形式を設定します。mainはネーミングとしてマークされます。これは、 serverブロックaccess_log logs / access.logmainの下で異なるドメイン名の異なるフォーマットのネーミングレコードに遭遇した場合に必要です。メインフォーマットで録音できます。pid、 worker_connectionsなどの他のパラメータ、および server、 upstream、 locationコマンドブロックに関しては、後続の「CentOS8でのNginx1.18の使用」シリーズの記事で使用法を紹介およびデモンストレーションします。 。
参照
Recommended Posts