ホームページ > ウェブフロントエンド > jsチュートリアル > nginx + ノードを使用して https をデプロイする方法

nginx + ノードを使用して https をデプロイする方法

亚连
リリース: 2018-06-19 17:43:47
オリジナル
2734 人が閲覧しました

この記事では、nginx + ノードを使用して Alibaba Cloud に https をデプロイする手順を主に、写真、テキスト、サンプルコードを通じて詳しく紹介します。これは、学習や仕事を必要とするすべての人の学習に役立ちます。以下一緒に勉強しましょう。

Origin

最近、Lingxi Micro Mall の Node+mongodb バージョンを作成しているので、独自の https 証明書を Alibaba サーバーにデプロイする必要があります。以下に、実装プロセスの完全な概要を示します。言うことはあまりありません。そうは言っても、詳しい紹介を見てみましょう。

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ディレクトリの問題であることが分かります。

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

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 行が追加されます。 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)

結果

アドレスバーから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モジュールを取得します
./configure --with-http_ssl_module

make
ログイン後にコピー

nginxを停止します

/usr/local/nginx/sbin/nginx -s stop
ログイン後にコピー

もちろんプロセスを強制終了することもできます

古いnginxを置き換えてください

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp ./objs/nginx /usr/local/nginx/sbin/
ログイン後にコピー

nginxを再起動してconf設定ファイルをリロードしてください

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -s reload
ログイン後にコピー
上記は皆さんのためにまとめました。将来役立つことを願っています。 関連記事:

jsで二次リンケージを実現する方法

webpackはスタイルをどのように処理すべきか?

jsで単語画像を生成する方法

jQueryのライブラリの参照メソッドとは何ですか

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート