ホームページ  >  記事  >  ウェブフロントエンド  >  nginx とノードを使用して Alibaba Cloud に https をデプロイする手順

nginx とノードを使用して Alibaba Cloud に https をデプロイする手順

小云云
小云云オリジナル
2017-12-20 09:18:022190ブラウズ

この記事は、nginx + ノードを使用して Alibaba Cloud に https をデプロイする手順を主に、写真、テキスト、サンプルコードを通じて詳しく紹介しています。この記事は、皆さんの学習や仕事に役立つことを願っています。みんなを助けることができます。

HTTPS と HTTP の主な違いは次のとおりです:

1. https プロトコルでは CA に証明書を申請する必要があるため、一般に無料の証明書が少ないため、一定の料金が必要です。

2. http はハイパーテキスト転送プロトコルであり、情報は平文で送信されますが、https は安全な SSL 暗号化送信プロトコルです。

3. http と https はまったく異なる接続方法を使用し、前者は 80、後者は 443 を使用します。

4. http 接続は非常にシンプルでステートレスです。HTTPS プロトコルは、暗号化された送信と ID 認証を実行できる SSL+HTTP プロトコルから構築されたネットワーク プロトコルであり、http プロトコルよりも安全です。

申請

無料の https 証明書を取得するために 2 日間待ちましたが、Ali では常に売り切れと表示されます。最近の https の人気により、供給が需要を上回っているのでしょうか。

数分後、fileauth.txt が指定されたディレクトリにアップロードされました。この間、レビューコールは行われませんでした入ってください。 Alibaba が提供する操作と展開の手順は非常に詳細に記載されているので、それをコピーするだけですが、手順に記載されている nginx ルート ディレクトリではなく、cert フォルダーを conf の下に置くように注意してください。アリババ独自の方法で操作すると、というエラーが表示され、certディレクトリの問題であることが分かります。

ノードのリバースプロキシ

fopen:No such file or directory:fopen('/usr/local/nginx/conf/cert/214389510580391.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)

location / {
   proxy_pass http://127.0.0.1:4001;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

ノードは通常どおり実行されます。httpsかhttpかは関係なく、nginxによって実行されます。最初の proxy_pass はリバース プロキシで、次の 3 つの proxy_set_headers は mall.it577.net からリクエストを完全に引き継ぎますが、リクエストを追加しなくてもフロント エンドからリクエストできますが、req.originUrl は http:// に解決されます。 127.0.0.1 :4001、これは WeChat 支払いコールバックの notify_url の分離に影響するため、これらの 3 行が追加されます。

結果

アドレスバーからhttpsがサポートされていることがわかります。 落とし穴

上記のプロセスは非常に簡単で、基本的に設定できます。私が遭遇した落とし穴についてお話します。 Alibaba のプリインストールされた nginx には https モジュールが含まれていないため、インストール パッケージを手動でダウンロードして再コンパイルし、最後に新しくコンパイルされた nginx 実行可能ファイルをコピーし、置き換えてサービスを再起動する必要があります。

SSLモジュールが見つからないというエラー報告

nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf:123
対応するバージョンのngix圧縮パッケージをダウンロード

wget http://nginx.org/download/nginx-1.12.1.tar.gz

解凍します

tar zxvf nginx-1.12.1.tar.gz

パラメータを指定してコンパイルして取得しますSSL module

./configure --with-http_ssl_module

make

nginxを停止


/usr/local/nginx/sbin/nginx -s stop
もちろん、インターネット上でプロセスを強制終了する方法を3つ見つけました

古いnginxを置き換えます

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp ./objs/nginx /usr/local/nginx/sbin/
ngin x を再起動し、conf 構成ファイルをリロードします

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -s reload

関連する推奨事項:

HTTPS の詳細な説明


node.js を使用して自己署名 https サーバーを構成する方法

https request:fail エラーと実際のマシンのプレビューの質問を含む解決策

以上がnginx とノードを使用して Alibaba Cloud に https をデプロイする手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。