Nginxはhttpとhttpsの両方のアクセスをサポートするために同じドメイン名を設定します

Nginxはhttpとhttpsの両方のアクセスをサポートするために同じドメイン名を設定します

Nginx は同じドメイン名で構成されており、http と https の両方でアクセスできます。証明書は Alibaba Cloud に無料で適用されます。

サーバ
{
聞く 80;
443 ssl を聴く;
sslオン;
server_name ドメイン名;
インデックス index.html index.htm index.php default.html default.hm default.php;
ssl_certificate /usr/local/nginx/cert/21402058063066221.pem; // 申請後にAlibaba sshから提供されたpemをダウンロードする
ssl_certificate_key /usr/local/nginx/cert/21402058063066221.key; //申請後にAlibaba sshから提供されたキーをダウンロードする
ssl_session_timeout 5分;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_プロトコル TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers をオン;

 
root /home/wwwroot/website ディレクトリ;

include laravel.conf; // さて、これが Laravel の設定です。これはあなたに適していない可能性がありますので、無視してください #error_page 404 /404.html;
enable-php.conf をインクルードします。

場所 ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
有効期限は30日です。
}

場所 ~ .*\.(js|css)?$
{
12時間で期限切れになります。
}

アクセスログ /home/wwwlogs/airclass.mime.org.cn.log;
}

鍵は上記の listen 80 にあります。

443 ssl をリッスン; ポート 80 を開く

もちろん、このように遊んでも意味がありません。https なので、http 経由でデータを送信する必要がありません。すべての http リクエストを https に転送する必要があります。

nginx リダイレクト コマンドは、http を https にリダイレクトするために使用されます。では、リダイレクトはどのように記述すればよいのでしょうか?古いバージョンの nginx では、次のような形式が使用されていた可能性があります。
つまり、別の仮想マシンサーバー、ポート80を追加することです

サーバー{
聞く 80;
サーバー名 www.domain.com;
rewrite ^/(.*) https://$server_name$1 permanent; #Httpsへジャンプ
}

書き直しには、以下のように異なるバージョンがまだある。

^/(.*)$ https://domain.com/$1 を永続的に書き換えます。

または

^ https://domain.com$request_uri? を永久に書き換えます。

現在、nginx の新しいバージョンでは書き込み方法が変更されており、上記の方法は推奨されなくなりました。おそらく、インターネット上には、最初のタイプについて語る記事がまだたくさんあるでしょう。

以下は、nginx http ページを https ページにリダイレクトするための最新のサポートされている方法です。

サーバー{
聞く 80;
server_name ドメイン.com;
301 https://$server_name$request_uri を返します。
}

サーバー{
443 ssl を聴く;
server_name ドメイン.com;

}

しかし、私の nginx/1.10.0 は動作していないようです。おそらくこの書き方はサポートされていないのでしょう...

以下は、http から https に基づく完全な構成です。

サーバ
{
#聞く80;
聞く 443;
sslオン;
server_name domain.com; // あなたのドメイン名index index.html index.htm index.php default.html default.htm default.php;
ssl_certificate /usr/local/nginx/cert/user.medsci-tech.com/214020580630662.pem;
ssl_certificate_key /usr/local/nginx/cert/user.medsci-tech.com/214020580630662.key;
ssl_session_timeout 5分;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_プロトコル TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers をオン;

root /home/wwwroot/web/public; //プロジェクトルートディレクトリ include laravel.conf;
#エラーページ 404 /404.html;
enable-php.conf をインクルードします。

場所 ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
有効期限は30日です。
}

場所 ~ .*\.(js|css)?$
{
12時間で期限切れになります。
}

}
サーバー{
聞く 80;
server_name ドメイン.com;
^/(.*) https://$server_name$request_uri? を永久に書き換えます。
}

同じドメイン名で http と https の両方のアクセスをサポートするように Nginx を構成する方法については、これで終わりです。同じドメイン名で http と https の両方をサポートする Nginx に関する関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • SSL を実装するために nginx を設定する方法の例
  • Nginx は https ウェブサイト構成コード例を実装します
  • https暗号化アクセス用にnginxを設定するための詳細なチュートリアル
  • Nginxドメイン名転送のhttpsアクセスの実装
  • Alibaba Cloud Nginx はドメイン名アクセス プロジェクトを実装するために https を設定します (グラフィック チュートリアル)
  • Nginx設定の原理と実装プロセスの詳細な説明https
  • HttpとHttpsの両方をサポートするNginxの詳細な設定
  • 複数のドメイン名に対する Nginx リバース プロキシを使用した HTTP および HTTPS サービスの実装
  • Nginx を使用して https ルートドメイン名への 301 リダイレクトを実装するためのサンプル コード
  • nginx で http でアクセスする Web サイトを https に変更する方法

<<:  MySQL 8.0 ディクショナリテーブル拡張の詳細な説明

>>:  Vue3 ドキュメント クイックスタート

推薦する

IE のテキストモード! DOCTYPE の役割の紹介

前の記事で説明したフォームの自動入力の問題を解決した後、新しい問題が発生しました。ページの一部のスタ...

MySQL データベースを最適化する 8 つの方法の詳細な説明 (必読の定番)

導入:インターネット上にはデータベースの最適化に関する情報や方法が数多くありますが、その多くは品質に...

Tomcat 実行時の JVM エンコーディングの問題を修正

質問:最近、プロジェクトを展開すると文字化けしたデータが出てきました。確認したところ、プロジェクトは...

MySQL 8.0.17 のインストールと使用方法のチュートリアル図

前面に書かれた過去および現在のプロジェクトで最も一般的に使用されているリレーショナル データベースは...

Vue の動的メニュー、動的ルートの読み込みと更新の落とし穴

目次必要:アイデア:レッスン:テキストを共有する:要約する必要:インターフェイスからサブメニュー デ...

Windows でのシンプルな Mysql バックアップ BAT スクリプトの共有

序文この記事では、Windows で Mysql をバックアップするための簡単な BAT スクリプト...

Windows で Nginx を使用して https サーバーとリバース プロキシを構成する際の問題

リクエストロジックフロントエンド --> https経由でnginxをリクエストnginx -...

MySQL SQL ステートメントが遅い場合の一般的な原因と解決策

1. インデックス不足または無効なインデックスによるクエリの遅延数千万件のデータを含むテーブルで、イ...

フィールドの文字セットの違いによる MySQL のインデックス失敗の解決策

インデックスとは何ですか?なぜインデックスを作成するのですか?インデックスは、列に特定の値を持つ行を...

vue v-for ループ オブジェクトの属性

目次1. ループオブジェクト内の値2. ループオブジェクト3. キーと値のループ1. ループオブジェ...

Vueはタブルーティング切り替えコンポーネントのメソッド例を実装します

序文この記事では、vue に付属している vue-router.js ルーティングを使用してページン...

jQueryフレームワークは、要素の表示と非表示の3つのアニメーションメソッドを実装しています。

目次1. デフォルトで表示と非表示を切り替える2. スライドして表示と非表示を切り替える3. フェー...

HTMLインライン要素とブロックレベル要素の基本概念と使用例

HTML タグには、インライン要素とブロックレベル要素の 2 種類があります。まず、インライン要素と...

CentOS MySQLデータベースのスケジュールバックアップを実装する方法

次のスクリプトは、MySQLデータベース全体のスケジュールされたバックアップに使用されます。 mys...

aタグのname属性とid属性を使用してページ内を移動する方法

以前はaタグのname属性を使ってジャンプする方法しか知らなかったのですが、idも使えることを今日知...