Alibaba Cloud CentOS7 サーバーの nginx 構成と FAQ の分析

Alibaba Cloud CentOS7 サーバーの nginx 構成と FAQ の分析

序文:

この記事は、jackyzm のブログ https://www.cnblogs.com/jackyzm/p/9600738.html を参考にして内容を更新しています。ここで適用可能なバージョンは centos7 バージョンであることに注意してください。この記事の設定方法はバージョン 8 では失敗したため、この記事を見る前にサーバーのバージョンを確認することをお勧めします。

いくつかの nginx の問題の対処については、次の記事を参照してください: http://www.mamicode.com/info-detail-3008792.html。含まれるエラーの一部は次のとおりです。

1.make[1]: *** [objs/Makefile:473: objs/src/core/ngx_murmurhash.o] エラー1

2.make[1]: *** [objs/Makefile:774: objs/src/os/unix/ngx_user.o] エラー1

3.make[1]: *** [objs/Makefile:769: objs/src/event/ngx_event_openssl.o] エラー1

この記事では、これらの問題やその他の問題に対する解決策とプロセスの改善について説明します。

コンテンツフロー:

0. 準備手順、1. gcc 環境のインストール、2. pcre ライブラリのインストール、3. ssl ライブラリのインストール、4. zlib ライブラリのインストール、5. nginx のインストール、付録: make プロセス中に nginx で発生する可能性のある問題、6. nginx の起動と使用、7. nginx の起動後にアクセスできない問題を解決する

具体的な内容:

0. 事前の指示

CentOS システムでは、yum ソースは nginx のインストールを直接提供しないため、yum ソースを切り替えて nginx をインストールするか、依存ライブラリと nginx インストール パッケージを直接ダウンロードして nginx をインストールします。この記事では後者を紹介します。

いくつかの必要なライブラリと nginx の関係: nginx の gzip モジュールには zlib ライブラリが必要で、rewrite モジュールには pcre ライブラリが必要で、ssl 関数には openssl ライブラリが必要です。

次に、この記事ではインストール ディレクトリとして /usr/local を選択します。一部のライブラリの特定のバージョン番号は、実際のニーズに応じて変更できますが、相互依存性があるため、最新のものには問題が発生する可能性があるため、慎重に選択してください。

次のコマンドは root 権限で実行する必要があります。

1. gcc gcc-c++ をインストールします(新しい環境の場合は、インストールされていない場合は最初にインストールしてください)

$ yum インストール -y gcc gcc-c++

2. pcreライブラリをインストールする

$ cd /usr/local/

$ wget https://sourceforge.net/projects/pcre/files/pcre/8.36/pcre-8.36.tar.gz

(注:pcreバージョンはリアルタイムで更新されます。バージョン8.36も古いバージョンです。最新バージョンが必要な場合は、自分でpcreを検索してから新しいバージョンを選択できます。ただし、新しいバージョンは不安定になる可能性がありますので、注意してください。

新しいバージョンを入手するための現在の URL は、https://sourceforge.net/projects/pcre/files/pcre/ です。

$ tar -zxvf pcre-8.36.tar.gz

$ cd pcre-8.36

$ ./configure

$ 作成 && インストール

エラーが報告された場合: configure: error: C++サポートにはC++コンパイラが必要です

解決策: yum install -y gcc gcc-c++

3. SSLライブラリをインストールする

$ cd /usr/local/

https://www.openssl.org/source/openssl-1.0.1j.tar.gz をダウンロードしてください

(注: openssl にもバージョン アップデートがあります。こちらは 2020.04 バージョンです。新しいバージョンを取得するための現在の URL は https://www.openssl.org/source/ です。

ここで 1.1.x や他のバージョンを使わなかったのは、後から nginx をインストールしたときに解決できないエラーに遭遇したため、この古いバージョンを選んだからです。解決できるのであれば試してみてもいいでしょう。解決方法や成功事例を教えていただけるとさらにありがたいです。

$ tar -zxvf openssl-1.0.1j.tar.gz

$ cd openssl-1.0.1j

$ ./config

$ 作成 && インストール

4. zlibライブラリをインストールする

$ cd /usr/local/

http://zlib.net/zlib-1.2.11.tar.gz をダウンロードしてください

(注: 以前と同様に、更新バージョンの Web サイトは http://zlib.net/ です)

$ tar -zxvf zlib-1.2.11.tar.gz

$ cd zlib-1.2.11

$ ./configure

$ 作成 && インストール

5. nginxをインストールする

$ cd /usr/local/

http://nginx.org/download/nginx-1.8.0.tar.gz をダウンロードしてください

(注: 以前と同様に、新しいバージョンを取得するための URL は http://nginx.org/download/ です)

$ tar -zxvf nginx-1.8.0.tar.gz

$ cd nginx-1.8.0

$ ./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-http_ssl_module--with-pcre=/usr/local/pcre-8.36 --with-zlib=/usr/local/zlib-1.2.11 --with-openssl=/usr/local/openssl-1.0.1j

(注: nginx.conf で ssl: on を設定した後、--with-http_ssl_module: が追加されていない場合、起動時に nginx: [emerg] unknown directive "ssl" in /opt/nginx/conf/nginx.conf 例外が報告されます。pcre、zlib、openssl などの仕様は、nginx が以前にダウンロードしたバージョンと一致するようにするためのものです。パスとバージョン番号は、以前にダウンロードしたバージョンに対応するように変更する必要があることに注意してください)

$ 作成 && インストール

付録: nginx の make プロセス中に発生する可能性のある問題:

エラー 1: make[1]: *** [objs/Makefile:460: objs/src/core/ngx_murmurhash.o] エラー 1

警告をエラーとして扱い、プログラムを終了する

解決策: nginx インストール ディレクトリの objs フォルダーに移動し、Makefile ファイルを変更します。

a を押して編集モードに入り、CFLAGS の -Werror を削除して esc を押し、:wq と入力して保存して終了します。

その後、make && make installコマンドを再度実行してください。

エラー 2: make[1]: *** [objs/Makefile:747: objs/src/os/unix/ngx_user.o] エラー 1

これは、struct crypt_data に 'current_salt' という名前のメンバーがないことを示しています: cd.current_salt[0] = ~salt[0]; 元の著者は、バージョンを変更するのが最善の方法であると述べています。ここで選択した 1.9 にはエラーがありますが、nginx1.8 に切り替えてもまだ影響がないため、nginx1.8 に基づく代替ソリューションが使用されます: コードコメント

つまり、nginx インストール ディレクトリで vim src/os/unix/ngx_user.c を実行し、ngx_user.c の 36 行目のコードに次のようにコメントを追加します。

保存して終了し、make && make installを再度試してください。

エラー 3: make[1]: *** [objs/Makefile:769: objs/src/event/ngx_event_openssl.o] エラー 1

これは、SSL バージョンが nginx に通知されていないことを示しています。これは、以前の ./configure 中に SSL バージョンが指定されなかったためである可能性があります。再設定が必要です。つまり、configure 中に SSL 仕様を追加する必要があります。

--with-openssl=/usr/local/openssl-1.0.1j

エラー 4: ./configure: エラー: SSL モジュールには OpenSSL ライブラリが必要です。

次のコマンドを実行してみてください:

yum -y openssl をインストール openssl-devel

エラー 5: ./configure: エラー: HTTP gzip モジュールには zlib ライブラリが必要です

他の 2 つのライブラリのパスは configure 中に指定されませんでした。–prefix の後に次のコマンドを追加します (具体的な使用方法については、./configure コマンドの実行を参照してください)。

--with-pcre=/usr/local/pcre-8.36 は、pcre-8.36 のソース パスを参照します。 --with-zlib=/usr/local/zlib-1.2.11 は、zlib-1.2.11 のソース パスを参照します。

上記のエラーでも問題が解決しない場合は、centos のバージョンが 7 であるかどうかを確認することをお勧めします。システム バージョンを変更した後、すぐに成功しました。他のエラーが発生した場合は、検索することをお勧めします。解決できない場合は大変申し訳ございません。

6. nginxを起動して使用する

$ /usr/local/nginx/sbin/nginx

起動成功の兆候: ブラウザを開き、サーバーの IP アドレスにアクセスします。ブラウザに「Welcome to nginx!」と表示されたら、nginx が正常にインストールされ、実行されていることを意味します。

その他のコマンドは次のとおりです。

再起動:

$ /usr/local/nginx/sbin/nginx -s リロード

停止:

$ /usr/local/nginx/sbin/nginx -s 停止

設定ファイルが正常かどうかをテストします。

$ /usr/local/nginx/sbin/nginx -t

強制終了:

$ pkill nginx

注: ここではソフトリンクが設定されていないため、このような長い命令を通じてのみ管理できます。必要に応じて、自分で取得して処理できます。後で時間があれば、この記事に更新します。

7.nginx起動後にアクセスできなくなる問題の解決方法

ここでも nginx ページが表示されない場合は、サーバーのセキュリティ グループが構成されていない可能性があります。たとえば、Alibaba Cloud では、次のように http とポート 80 の構成をここに追加する必要があります。

セキュリティ グループを構成したら、ページを更新するだけで nginx の成功ページが表示されます。

最後に、皆様の設定がスムーズに進むことを祈念いたします。

Alibaba Cloud CentOS7サーバーのnginx設定の分析とよくある質問への回答についてはこれで終わりです。Alibaba Cloud CentOS7のnginx設定の詳細については、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も123WORDPRESS.COMを応援してください。

以下もご興味があるかもしれません:
  • Alibaba Cloud CentOS 7 サーバー構築 Nginx Web サービス体験例
  • Alibaba Cloud CentOS 7.4 に Python 3.6 をインストールする方法
  • Alibaba Cloud CentOS7 で Apache+PHP+MySQL 環境を構築
  • CentOS7でyumソースを使用する詳細な説明 Alibaba Cloud
  • Alibaba Cloud CentOS7 に Mongodb をインストールするチュートリアル
  • Alibaba Cloud Centos7にLNMP+wordpressをインストールする

<<:  CentOS7 64でのMySQL5.6.40の詳細なインストール手順

>>:  React NativeのstartReactApplicationメソッドの簡単な分析

推薦する

Nginx プロセス管理とリロードの原則の詳細な説明

プロセス構造図Nginx はマルチプロセス構造です。マルチプロセス構造は、次のような Nginx の...

Vueのレスポンシブシステムの原理の詳細な説明

目次Vueのレスポンシブシステムの基本原則1. Object.definePropertyの使い方を...

Linux デュアル ネットワーク カード バインディング スクリプト メソッドの例

Linux の操作と構成作業では、デュアル ネットワーク カードのバインディングがよく使用されます。...

テキストエリアの残りの単語数を動的に取得する方法

仕事で、これまで一度も書いたことのないケースに遭遇しました。午後の半分をその作業に費やし、ついに書き...

MySql テーブル、データベース、シャーディング、パーティショニングの知識の詳細な説明

1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...

Nginx ソースコードのコンパイルとインストールのプロセス記録

rpm パッケージのインストールは比較的簡単なので、ここでは説明しません。ほとんどのオープンソース ...

Linux で MySQL 5.7.19 をアンインストールする方法

1. MySQLが以前にインストールされていたかどうかを確認するコマンド: rpm -qa|grep...

JavaScriptは行削除機能を備えたテーブルを動的に生成します

この記事の例では、テーブルを動的に生成したり行を削除したりするためのJavaScriptの具体的なコ...

MySQLがファントムリードを解決する方法の詳細な説明

1. ファントムリーディングとは何ですか?トランザクションにおいて、複数のクエリの後に結果セットの数...

Apache Webサーバーのインストールと設定方法

信頼性が高く、人気があり、簡単に構成できる Web サーバーである Apache で独自の Web ...

React+TypeScriptプロジェクト構築事例解説

React プロジェクトの構築は非常に簡単ですが、Typescript と組み合わせると、実際にはそ...

JavaScriptの詳細な説明 thisキーワード

目次1. はじめに2.これを理解する3. これは誰ですか? 4.矢印関数はさらに読む要約する1. は...

IDEA が docker を統合して springboot プロジェクトを展開するプロセス全体

目次1. IDEAはdockerプラグインをダウンロードします2. クラウドサーバーDocker 2...

Webpack でよく使われる 12 個の Loader を共有する (要約)

目次序文スタイルローダーCSSローダーsassローダーpostcssローダーバベルローダーtsローダ...

VirtualBox CentOS7.7.1908 Python3.8 ビルド Scrapy 開発環境 [グラフィックチュートリアル]

目次環境CentOSをインストールするyum 国内ミラーソースを構成するサードパーティの依存関係をイ...