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

推薦する

MySQL リンクを表示し、異常なリンクを削除する方法

序文:データベースの運用や保守の際には、リンクの総数がいくつあるか、アクティブなリンクがいくつあるか...

jQueryのチェーンプログラミングスタイルの詳細な例

チェーンプログラミングの実装原理jQuery を使用すると、開発者は常にドット構文を使用して独自のメ...

Dockerコンテナを使用してホストネットワークにアクセスする方法

最近、nginx をリバース プロキシとして使用し、docker で nginx を実行するシステム...

さまざまなブラウザに対応するためにCSSで指定フォント@font-faceを導入する際の問題

Web ページを作成するときに、特定のフォントを使用したい場合は、 @font-faceを介して参照...

docker を使用してコード サーバーをデプロイする方法

画像をプルする # docker pull codercom/code-server # Docke...

Vue.js パフォーマンス最適化 N 個のヒント (収集する価値あり)

目次機能コンポーネント子コンポーネントの分割ローカル変数v-show によるDOMの再利用キープアラ...

HTML の一般的でないタグ optgroup、sub、sup、bdo のサンプルコード

Optgroup は、ドロップダウン リストのコンテンツをより整理するために、select タグで使...

Vue.jsはコンポーネントを通じてアイコンを処理します

アイコン処理ソリューションこの記録の目的は、element-plus 以外のアイコンをコンポーネント...

CSS で高さが不明な垂直中央揃えを実装する

この記事では主に、高さが不明な垂直方向の中央揃えを CSS で実装する方法を紹介し、皆さんと共有しま...

Dockerfile を使用して Docker でイメージを構築する方法

イメージを構築するこれまで、テストやデモンストレーションにさまざまなイメージを使用しました。多くの場...

ドメイン名、ポート、IPに基づいてnginx仮想ホストを構築する

nginxでサポートされている仮想ホストには3つの種類があります1. ドメイン名ベースの仮想ホスティ...

MySQL ユーザー権限管理の分析例

この記事では、MySQL ユーザー権限管理の例について説明します。ご参考までに、詳細は以下の通りです...

UDP シンプル サーバー クライアント コード例

UDP の理論については詳しく説明しません。UDP に関する HelloWorld プログラムを紹介...

VMware Workstation と vSphere 間で仮想マシンを移行する (画像とテキスト)

1. Workstationで仮想マシンのハードウェアバージョンを変更するWorkstation ...