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メソッドの簡単な分析

推薦する

Bootstrap 3.0 学習ノート グリッドシステムの原則

前の 2 つの記事の簡単な紹介を通じて、Bootstrap についての基礎的な理解が得られました。 ...

MYSQLストアドプロシージャ、つまり一般的な論理知識のポイントの要約

MySQL ストアド プロシージャ1. ストアドプロシージャ構文(フォーマット)を作成する 区切り文...

優れたウェブフロントエンドデザインの指標

Web ページのアクセシビリティは、フロントエンドでのみ評価および実装できるもののようです。ユーザビ...

UbuntuはCUDAの複数のバージョンをインストールし、いつでも切り替えることができます

CUDA とは何かを紹介するのではなく、複数の CUDA バージョンの共存とリアルタイム切り替えをど...

Vue が DingTalk の出勤カレンダーを実装

この記事では、DingTalkの勤怠カレンダーを実装するためのVueの具体的なコードを参考までに共有...

1 つの記事で Node.js の非同期プログラミングを学ぶ

目次 はじめに 同期 非同期とブロッキング JavaScript のノンブロッキング コールバック ...

MybatisはSQLクエリのインターセプションと変更の詳細を実装します

序文インターセプターの機能の 1 つは、特定のメソッドの呼び出しをインターセプトできることです。イン...

Linux で gdb を使用してコア ファイルをデバッグする方法

1.コアファイルプログラム実行中にセグメンテーション エラー (コア ダンプ) が発生すると、プログ...

Docker Swarmを使用してWordPressを構築する方法

原因かつて私は Vultr に WordPress を設定しましたが、よく知られている理由により、こ...

CSS コード省略 div+css レイアウト コード省略仕様

略語を使用すると、CSS ファイルのサイズが小さくなり、読みやすくなります。 CSS 省略形の主なル...

Linux で PyCurl のエラーを解決する方法

「curl-config を実行できませんでした」の解決策 pycurl のダウンロード/解凍 (p...

ReactJs 基礎チュートリアル - 基本編

目次1. ReactJS の紹介2. ReactJSの理解とReactJSの利点1. ReactJS...

CocosCreator でカメラトラッキングに cc.follow を使用する方法

Cocos Creator バージョン: 2.3.4デモのダウンロード: https://files...

MYSQLでリモートアクセス権限を有効にする方法

1. MySQLデータベースにログインするmysql -u ルート -pユーザーテーブルを表示する ...