公開鍵と秘密鍵
コンセプト
インタラクティブなプロセス
ブラウザは、データを暗号化するために、公開キーを使用して、送り出されました。公開鍵暗号化されたコンテンツの後、唯一それを理解するために、秘密鍵の人々(nginxのサーバー)を持っています。
nginxの設定HTTPS
場合はhttpsをnginxの設定、あなたは)この:(購入から異なるように二つのことを必要とします。キー、秘密鍵。内側にnginxのサーバー、これだけ、証明書、ダウンロードするブラウザの公開鍵。
独自のテストを使用していない、サーバ証明書の秘密鍵を作成するだけのように-----制作環境を作成します
ディレクトリ/etc/nginx/conf.d/を入力し、生成された証明書は、ここに配置されます。
1、サーバーの秘密鍵のコマンドを作成するには、パスワードを入力させます。
opensslのgenrsa -des3 -out server.keyの1024
図2に示すように、証明書署名要求(CSR)を作成します。
opensslのREQ - 新しい -key server.keyの-out server.csr
ロードとnginxのSSLサポートは、秘密鍵を使用した場合3、パスワードを削除する必要があります。
opensslのRSA -in server.keyの-out server_nopass.key
4、そして最終的にCSRラベル秘密鍵と証明書を使用して:
opensslのX509 -req -days 365 -in server.csr -signkey server_nopass.key -outをserver.crt
環境要件
nginxのは、最初のバージョン情報、コマンドを確認してください。
nginxの-V
そこでは、http_ssl_module---with httpsのモジュールがインストールを表します。そうでない場合は、再インストールしてください。
コンフィギュレーション
{Serverは 聞く 443 ; SSL サーバー名sales.enjoy.com; ssl_certificate /etc/nginx/conf.d/ をserver.crt;#証明書 ssl_certificate_keyの /etc/nginx/conf.d/のserver_nopass.key;#プライベート IF($ http_originをHTTP〜:// enjoy.com){(*)。。 。SET $ $ allow_url http_origin } で要求検証情報を許可するかどうか# はadd_headerアクセス -制御-許可-資格情報をtrueに; #は、ドメインへのクロスドメインアクセスを許可する、であってもよいですドメインのリスト、それはワイルドカード可能 * はadd_headerアクセス -制御-allow- 起源の$ allow_url; #スクリプトはリターンヘッドアクセスすることができます はadd_headerアクセスコントロール「X-要求-で、コンテンツタイプ、のCache-Control、プラグマ、日付、タイムスタンプ-X」 - -ヘッダを許可; #リクエスト方法は、使用カンマが区切りができます はadd_headerアクセス -制御-許可-メソッドをPOST、GET、OPTIONS、PUT、DELETE「; #は、カスタムヘッダを可能にする、カンマで区切られ、大文字と小文字を区別しない はadd_headerアクセス -コントロール-露光-ヘッダ」WWW認証、サーバー認証」; #P3Pサポートクロスドメインクッキー操作 はadd_header P3P 'policyref = "/ W3C / p3p.xml"、CP = "NOI DSP BUS PSAA OUR ONL UNI IND COM NAV INT LOC"' ; はadd_header試験 1 ; IF(REQUEST_METHOD $ = 'OPTIONS' ){ リターン 204 。 } 場所/ { ルートHTML / 販売。 インデックスのwelcome.html。 } error_page 500 502 503 504 / 50x.html。 位置 = / 50x.html { ルートHTML。 } }
ラン
httpsのアクセスはOK、証明書が組織内で認定されていないため、証明書が安全ではないことを示唆し、証明書が正常に買うためにお金を費やす必要はされました。
HTTPリダイレクトHTTPSへ
{サーバー 聞く 80 ; server_nameのsales.enjoy.com; リライト ^ / https://sales.enjoy.comリダイレクト; IF($ http_origin HTTP〜:。//(.*)enjoy.com){ SET $ $ http_origin allow_url ; } と要求検証情報を許可するかどうか# はadd_headerアクセス -制御-許可-資格情報をtrueに; #は、ドメインへのクロスドメインアクセスを許可し、ドメインがリストであってもよいし、またはワイルドカードかもしれ * はadd_headerアクセス -制御-allow- 起源$ allow_url ; #スクリプトはリターンヘッドアクセスすることができます はadd_headerアクセス - -制御-許可-ヘッダ「タイムスタンプX-要求-with-、コンテンツの種類、のCache-Control、プラグマ、日付、X」; #許可リクエストメソッド、カンマ区切りオープン アクセスはadd_header許可-メソッド-コントロール「POST、GET、OPTIONS、PUT、DELETE」; #カスタムは、カンマで区切って、頭を可能に、大文字と小文字を区別しない はadd_headerアクセス -制御-露光-ヘッダWWW認証、サーバー-許可' ; P3P動作#サポートクロスドメインクッキー はadd_header P3P ' policyref = "/ W3C / p3p.xml"、CP = "NOI DSP BUS PSAA OUR ONL UNI IND COM NAV INT LOC" ' ; はadd_header試験 1。; IF($ REQUEST_METHOD = 'OPTIONS' ){ リターン 204 ; } LOCATION / { ルートHTML / 販売; 指数のwelcome.html; } error_page 500 502 503 504 / 50x.html。 位置 = / 50x.html { ルートHTML。 } }
注:HTTPS年間で、AJAXリクエスト普通のhttpが、それはエラーになります(理由:安全性が低いです)
httpsのドメイン・エラーの訪問のhttpドメイン。
nginxの可用性
問題
可用性のアイデアTOMCAT解決nginxの、ロードサービスのnginxの層が先行します。この方法は、常にフロントエンド負荷層は無限ループであってもよいがダウン存在します。
ソリューション
LVSを解決するために考え、解決するためにkeepalivedの
keepalivedのアイデア:
図2は、仮想ゲートウェイVIPのうち仮想サーバソフトウェアによって、この協議は、二つのマシンによって生成されるVIP。マシンがダウンし、別のマシンのVIPを維持するために。このことを保証する限り、両方のマシンではなく同時にダウンしているとして、VIPが。
注:唯一の2台のマシン間で適用することができkeepalivedの
keepalivedのダウンロード、インストール、構成、
ダウンロード
ダウンロードします。https://pan.baidu.com/s/1G7sLL-YkZGSMu8G76yz1Rwパスワード:adbw。-----対応のcentos6システムは、異なるシステムは、異なるバージョンを見つける必要があります。
インストール
1、
./configure --prefix = /データ/プログラム/ keepalivedの--sysconf =の/ etc ##キープアライブ開始時間がデフォルトになりますので、読み取り/etc/keepalived/keepalived.conf
2、
作る&& make installを
コンフィギュレーション
オープン/etc/keepalived/keepalived.conf、次の段落を設定するだけで済みます。(他の冗長構成、削除)
再起動
IP addrでカードを表示するには、システムコマンド
カード上のeth0、2つのIP、244.3が真のIPで、244.200仮想vipがあります
上記は、ホストの設定で、その後、ダウンロード、インストール手順、別のマシン構成を繰り返します。2機、2つだけの構成の違いのスタンバイ構成:
状態のバックアップ#は、主BACKUP調製するMASTER、指定されたロール、keepalivedの
優先順位要求を処理する優先度100#優先度を、値が大きいほど、より高いします。代替小さいです
テストスタンバイkeepalivedの
通常の状況下では、VIPのVIPは、スタンバイ・ホスト上のマシン244.4の一端を表示されません。上部の下に。keepalivedの私たちがホスト上で殺す場合は、この時点では、VIPは、スタンバイ・マシン上に表示されます。下半分以下に。
ホスト装置が再起動keepalivedの後、スタンバイマシンVIP = 200は、図のように、消失しました。
概要
keepalivedの高可用性アーキテクチャ図
使用を監視するためのkeepalivedのnginxの
SHスクリプトモニタ、shスクリプトを編集します:
#!/ binに/ bashのは A = `PS -C nginxの--no-ヘッダ| WC - 'L IF [$ A -eq 0 ];その後 は/ usr / local / nginxの/ sbinに/ nginxの#再起動nginxの IF [` PS nginxの--no-ヘッダ-C | WC -l` -eq 0 ]; #nginxが、その後、再起動失敗し、サービスはVIPの転送のために、停止しkeepalivedの 別のマシンへのローミングにVIP、killallをkeepalivedの#キル Fiの Fiの
設定ファイルに以下の2つの設定を追加します。
keepalivedのは、テストの結果、以下の操作を監視し、再起動します。
テスト結果:nginxのダイ