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つの方法の詳細な説明

推薦する

Linux ドメイン ネーム サービス DNS 設定方法

DNSとはDNS の正式名称は Domain Name System で、ドメイン名解決システムを意...

JavaScript でタブバーの切り替え効果を実装する

フロントエンド開発者が必ず知っておくべきケースとして、タブバーの切り替え効果があります。タブバー自体...

MySQLのマスタースレーブレプリケーションと読み取り書き込み分離を理解するための記事

目次導入1. MySQL マスタースレーブレプリケーション1. MySQLレプリケーションタイプ2....

25 div+css プログラミングのヒントとコツ

1. ul タグには、Mozilla ではデフォルトでパディング値がありますが、IE ではマージン値...

Dockerコンテナ相互接続の予備的な実践についての簡単な説明

1. Dockerコンテナ間の相互接続Docker は現在、軽量の仮想化ソリューションとなっています...

Linux/Mac MySQL パスワードを忘れた場合のパスワード変更コマンドラインメソッド

すべての前提条件にはルート権限が必要です1. MySQLプロセスを終了する //Linux sudo...

MySQLサービスを開くおよび閉じる2つの方法

方法1: cmdコマンドを使用するまず、DOS ウィンドウを開き、スタート、実行、cmd と入力しま...

VMWare を使用して Windows 上で Linux 環境を構築する手順 (画像とテキスト)

Mac を返却して以来、元のラップトップは使用されていません。このラップトップの構成は非常に良好で...

Markodwnによるタイトル配置による同期スクロールのアイデアの詳細な説明

序文私が作成中の Markodwn エディターに同期スクロール機能を追加する必要があります。Baid...

非常に詳細な Vue-Router のステップバイステップのチュートリアル

目次1. ルータビュー2. ルータリンク3. リダイレクト4. ルーティングエイリアス5. ルーティ...

MySQLデータをOracleに移行する正しい方法

mysql データベースには student テーブルがあり、その構造は次のとおりです。 Oracl...

Nginx で limit_req_zone を使用して同じ IP へのアクセスを制限する方法

Nginx は、ngx_http_limit_req_module モジュールの limit_req...

JSはフロントエンドのページング効果を実現します

この記事の例では、フロントエンドのページング効果を実現するためのJSの具体的なコードを参考までに共有...

HTML に基づいてページを更新せずにフォーム送信を実装する

ページを更新せずにフォーム送信を実装するために Ajax を使用することは、プロジェクトでよく使用さ...

Linux のプロセスクラッシュの原因をコアダンプ技術を使用して追跡する簡単な分析

最近、プロジェクトで問題が発生しました。サーバー側のプログラムが突然クラッシュして終了しました。クラ...