Nginx 構成 SSL および WSS 手順の紹介

Nginx 構成 SSL および WSS 手順の紹介

序文

最近、WeChatミニプログラムのリリースにより、ミニプログラムのリリースでは、登録されたサーバーのドメイン名とhttpsリクエスト方式を使用する必要があります。サーバーは以前に登録されています。今回は、ミニプログラムのバックグラウンドサービスを別のサーバーに展開しています。バックグラウンドサービスを再展開したくないので、登録サーバーにNginxをインストールしてSSLを設定し、Nginxを介して別のサーバーにリバースプロキシすることを考えました。

1. Nginxのインストール

著者はTencent Cloud Server Centos 7.5を使用しています。インターネット上にはインストールチュートリアルが多数あります。著者もオンラインチュートリアルに基づいて記録を作成します。主なインストール プロセスでは、Nginx SSL モジュールの構成と追加が必要です。インストールが成功した場合は、この手順をスキップできます。

1. Nginxをダウンロードする

ダウンロードアドレス: /download/ のインデックス

ダウンロードが完了したら、サーバーに転送するか、wget コマンドを使用してダウンロードします。

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

2. 依存関係をインストールする

1) gcc-c++コンパイラをインストールする

yum で gcc-c++ をインストールします
yum インストール -y openssl openssl-devel

2) pcreパッケージをインストールする

yum インストール -y pcre pcre-devel

3) zlibパッケージをインストールする

yum インストール -y zlib zlib-devel

3. Nginxをコンパイルしてインストールする

1) インストールパッケージを解凍する

tar -zvxf nginx-1.9.0.tar.gz

2) nginxディレクトリに切り替えてnginxを設定し、sslモジュールを追加します。

nginx-1.9.0をインストールします
./configure --with-http_ssl_module

./configure --with-http_ssl_module を設定する必要があります。初めてインストールしたとき、デフォルトの設定を直接使用したため、SSL 証明書の設定時にエラーが発生しました。

3) コンパイルしてインストールする

インストールする

4) インストールパスを見つける

nginxはどこにある?

5) インストールディレクトリに切り替え、sbinディレクトリに入り、nginxを起動します。

/usr/local/nginx/sbin./nginx をコピーします。

6) nginxが正常に起動しているか確認する

2. SSL設定

1) 証明書を取得する

著者はここでTencent Cloudを使用しており、無料の証明書を申請してnginxバージョンをダウンロードできます。

2) ダウンロードしたすべての証明書ファイルをサーバーにアップロードし、nginx の conf ディレクトリ (構成ファイルと同じレベル) に配置します。

3) nginx.confファイルを入力し、SSL情報を設定します。

 
#ユーザーnobody;
ワーカープロセス 1;
 
#error_log ログ/error.log;
#error_log ログ/error.log 通知;
#error_log ログ/error.log 情報;
 
#pid ログ/nginx.pid;
イベント {
    ワーカー接続 1024;
}
http {
    mime.types を含めます。
    デフォルトタイプ アプリケーション/オクテットストリーム;
    ファイル送信オン;
    キープアライブタイムアウト65;
    サーバー{
        聞く 443;
        #証明書にバインドされたドメイン名 server_name xxxxx;
	    # 証明書ファイル名。ここでは .pem と .crt の両方の証明書ファイルを使用できます。ssl_certificate xxxx.pem;
        # バージョンの問題により、一部のバージョンの設定ファイルではSSLを追加する必要があります
	    sslオン;
	    #秘密鍵ファイル名 ssl_certificate_key xxx.key;
        ssl_session_timeout 5分;
	    ssl_プロトコル TLSv1 TLSv1.1 TLSv1.2;
	    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
	    ssl_prefer_server_ciphers をオン;
        位置 / {
            ルートhtml;
            インデックス index.html index.htm;
        }
 
        #エラーページ 404 /404.html;
 
        # サーバーのエラーページを静的ページ /50x.html にリダイレクトします
        #
        エラーページ 500 502 503 504 /50x.html;
        場所 = /50x.html {
            ルートhtml;
        }
 
	場所 /ctp/{
        # 転送するサーバーのアドレスとポートを入力します proxy_pass http://ip:port;
	}
      
    }
}

詳細な証明書設定チュートリアルについては、Tencent Cloud: SSL 証明書 Nginx サーバー SSL 証明書のインストールと展開 - 証明書のインストール - ドキュメント センター - Tencent Cloud を参照してください。

3.WSS構成

nginx を Websocket プロキシとして構成するのは、想像するよりもはるかに簡単です。HTTP アップグレード プロトコル ヘッダーを使用して、接続を HTTP 接続から WebSocket 接続にアップグレードできます。具体的な構成は次のとおりです。

場所 /ctp/{
            # 転送するサーバーのアドレスとポートを入力します proxy_pass http://ip:port;
            proxy_set_header アップグレード $http_upgrade;
            proxy_set_header 接続 'アップグレード';
        }

Nginx で SSL と WSS を構成する手順に関するこの記事はこれで終わりです。Nginx で SSL と WSS を構成する方法に関する関連コンテンツの詳細については、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Nginx での SSL 証明書のインストールと展開手順の概要
  • SSL を実装するために nginx を設定する方法の例
  • Nginx SSL証明書設定エラーの解決策
  • Nginx ドメイン名 SSL 証明書の構成 (Web サイトの http を https にアップグレード)

<<:  css-loader を使用して vue-cli で css モジュールを実装する

>>:  JSインターセプト文字列の3つの方法の詳細な説明

推薦する

SSDストレージを有効にしたMySQLインスタンスの詳細な説明

SSDストレージを有効にしたMySQLインスタンスの詳細な説明特に OS と MySQL が同じディ...

フローチャートとUIフローの違い

UI デザインにおける多くの概念は言葉で言えば似ているように見えるかもしれませんが、実際には大きく異...

Linux 型バージョン メモリ ディスク クエリ コマンド紹介

1. まず、Linux システムのバージョン内容について概要を説明します。 1. カーネルバージョン...

js を使用してファイルが UTF-8 でエンコードされているかどうかを判断する方法

従来の解決策FileReader を使用して UTF-8 形式のファイルを読み取り、ファイルの内容に...

Linux QT Kit が見つからない、バージョンが空の問題の解決策

現在このような問題が発生しています 私の状況は、QT が動かなくなってしまったため、仮想マシンを再起...

CCS におけるマージン: トップ崩壊問題を解決する

HTML 構造は次のとおりです。 CCS 構造は次のとおりです。 ページ効果図は次のとおりです。 こ...

Mysql5.7.17 winx64.zip 解凍バージョンのインストールと設定のグラフィックチュートリアル

1. mysql-5.7.17-winx64.zip をダウンロードします。リンク: https:/...

JavaScript 文字列の一般的なメソッドの詳細な説明

目次1. キャラクター文法パラメータ索引戻り値2. 連結文法パラメータ文字列2 [, …文字列N]戻...

Pycharmとsshリモートアクセスサーバーdockerの詳細なチュートリアル

背景: 一部の実験はサーバー上で完了する必要があります。したがって、リモート サーバー上のコードをロ...

jsはポップアップウィンドウをクリックすることでポップアップログインボックスを実装します

この記事では、ポップアップウィンドウをクリックしたときにポップアップログインボックスを実現するための...

CSS を使用してサブ要素に応じて異なるスタイルを記述する方法

達成すべき効果: 必要なもの1枚、2枚、3枚とスタイルが異なります。子要素の判定はjsで完結できます...

シンプルな虫眼鏡効果を実現するJavaScript

大きな箱の中に写真があります。マウスをその上に置くと、半透明のマスク レイヤーが表示されます。マウス...

HTML 基本要約推奨事項 (タイトル)

HTML: タイトル見出しは <h1> - <h6> などのタグによって定...

Tencent Cloud Server Centosにデータディスクをマウントする方法

まず、ハードディスクデバイスにデータディスクがあるかどうかを確認します # まずfdisk -lを実...

Vue 学習 - VueRouter ルーティングの基礎

目次1. Vueルーター1. 説明2. 選択したルートのレンダリング: 3. 基本的な動作原理2. ...