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 ドキュメント クイックスタート

推薦する

CSS3 transition-delay属性のデフォルト値が単位なしの0であり無効である問題を解決します

今日は、CSS3 の transition-delay 属性のデフォルト値 0 に単位がないのは無効...

MySQL で結果を選択して更新を実行する例のチュートリアル

1. 単一テーブルクエリ -> 更新 テーブル名の更新 フィールド1=新しい値1、フィールド2...

HTMLチュートリアル、簡単に学べるHTML言語

1. <body background=画像ファイル名 bgcolor=color text=...

CSS3 で高さと幅を不定にして垂直と水平に中央揃えするいくつかの方法

1. フレックスレイアウト 。父親 { ディスプレイ: フレックス; コンテンツの中央揃え: 中央;...

ウェブデザインのためのオンライン開発ツール10選の紹介

1. オンラインテキストジェネレーターBlindTextGenerator: デザイナーにとって、こ...

MySQL における識別子の大文字と小文字の区別の問題の詳細な分析

MySQL では、テーブル名の大文字と小文字の区別の問題が発生する可能性があります。実際、これはプラ...

ルート変更を監視するJavaScriptの詳細な説明

目次歴史pushState() メソッドpushState() の使用シナリオreplaceStat...

CSSフロートの特性についての簡単な説明

この記事では、CSS フロートの特徴を紹介します。皆さんと共有し、自分用のメモとして残したいと思いま...

MySQL で準備、実行、割り当て解除ステートメントを使用するチュートリアル

序文MySQLでは、準備、実行、割り当て解除を正式にはPREPARE STATEMENTと呼びます。...

Linux システムの最適化 (カーネルの最適化) に関するいくつかの提案

スワップを無効にするサーバーがデータベース サービスまたはメッセージ ミドルウェア サービスを実行し...

HTML テーブル タグ チュートリアル (34): 行スパン属性 ROWSPAN

複雑なテーブル構造では、一部のセルが水平方向に複数のセルにまたがるため、行間属性 ROWSPAN を...

MySQL でのトランザクションの使用方法

基礎トランザクションは、SQL ステートメントのグループに対するアトミック操作です。つまり、グループ...

ElementUI の el-dropdown に複数のパラメータを実装する方法

最近、業務上のボタンの増加により、ページレイアウトにボタンが多すぎて、ページが美しくなく、ユーザーエ...

MySQL InnoDB 監視 (システム層、データベース層)

MySQL InnoDB 監視 (システム層、データベース層) MySQL の監視に関しては、My...

zabbix 4.04 の詳細なインストール チュートリアル (CentOS 7.6 ベース)

1. インストール前の準備: 1.1 JDKをインストールするopenjdkをアンインストールする...