先週末、兄弟プロジェクトはより良いサービスを提供するためにサーバーを拡張する準備をしていました。兄弟プロジェクトの一部の機能がリアルタイムで提供され、対応するシステム機能を一時的にブロックする必要がありました。nginxを使用したため、nginxを直接構成して、修正されたシステムメンテナンスページにリダイレクトすることができました。 Nginx のリダイレクトは実際には非常に簡単です。 return または rewrite キーワードのいずれかを使用できます。リダイレクトは静的ページに直接ジャンプするため、後続の操作やレコードは不要であり、直接 301 永続リダイレクトが使用されます。 リダイレクトは、サーバーまたは特定の場所で設定できます。以下は、それぞれについて簡単に説明します。 サーバーで設定: http { サーバ{ 聞く 80; サーバー名 A.com; # 以下の return または rewrite のいずれかを選択します。このうち、upgrade.html は私が自分で書いたプロンプト ページです。301 http://B.com/upgrade.html を返します。 # 書き換え ^/(.*)$ http://B.com/upgrade.html permanent; location / { # 以下の設定内容はここでは省略します} } } または、次の場所で設定します: http { サーバ{ 聞く 80; サーバー名 A.com; 位置 / { ^/(.*)$ http://B.com/upgrade.html を永久に書き換えます。 # 以下の設定内容はここでは省略します} } } 上記の例から、return は 301 パラメータリダイレクトを使用し、rewrite は permanent を使用していることがわかります (もちろん、break や last を使用することもできます。違いを知りたい場合は、自分で情報を調べてください)。 上記の 2 つの例では、A.com が B.com にリダイレクトするために使用されていることにお気づきでしょうか。A.com を使用して A.com/upgrade.html に直接リダイレクトしようとしましたが、繰り返しが多すぎるというエラー メッセージが報告され、無限ループに入ります。複数のドメイン名を同時に管理する場合、A を B にリダイレクトするように設定できますが、ドメイン名 A が 1 つしかない場合はどうなるでしょうか? このとき、if 条件を使用して判断します。ここでは、サーバー内の構成を例に説明します。 http { サーバ{ 聞く 80; サーバー名 A.com; # if の後にはスペースが必要であることに注意してください。 ! ! $request_uri の場合: 301 http://A.com/upgrade.html を返します。 } 位置 / { # 以下の設定内容はここでは省略します} } } 上記の例では、アクセス パスに /upgrade.html が含まれていない場合、upgrade.html にリダイレクトされることを示しています。このとき、リダイレクトは成功し、繰り返しすぎてもプロンプトは表示されません。ただし、別の問題があります。つまり、upgrade.html 内の画像が表示されないということです。画像がリダイレクトされないようにする方法を研究する時間がありません。後で時間があるときにさらに追加します。 if 条件をテストしているときに、特に落とし穴に遭遇しました。つまり、if を追加して nginx を再起動すると、次のエラー メッセージが表示されました。 制御プロセスがエラー コードで終了したため、nginx.service のジョブが失敗しました。詳細については、「systemctl status nginx.service」および「journalctl -xe」を参照してください。 systemctl status nginx.service と入力して、nginx: [emerg] unknown directive "if($request_uri" エラーなどのエラー情報を表示します。答えを見つけました。if の後にスペースが必要であることが判明しました!!! !!! 残念です。インターネット上の nginxif を紹介する記事には、このような重要な情報は記載されていませんでした... 情報ありがとうございます: if の後にスペースが必要です: https://blog.csdn.net/palet/article/details/103394236 nginx で戻って書き直す: https://blog.csdn.net/u010982507/article/details/104025717 知識ポイント補足任意のアドレスを入力するとメンテナンスページにリダイレクトするように nginx を設定します 注: 任意のアドレスを入力するとメンテナンスページにリダイレクトするように nginx を設定します。 サーバー{ 聞く 80; ルート /xxx/xxx/src; インデックス index.html index.htm; サーバー名 test.xxx.com; $flag を 0 に設定します。 $request_uri の場合 ("(/static/.*)$"){ $flag を "${flag}1" に設定します。 } $request_uri が "/502.html$" の場合{ $flag を "${flag}2" に設定します。 } $flag = "012"の場合{ ^(.*) http://test.xxx.com/502.html を永続的に書き換えます。 } 位置 /{ ... 上記は、システムメンテナンスページへのnginxリダイレクトの詳細です。nginxリダイレクトメンテナンスページの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
>>: CSS フレックスベースのテキストオーバーフロー問題の解決方法
1.前面に書きます:軽量仮想化テクノロジーとして、Docker には継続的インテグレーション、バージ...
ソフィー・ハルダッククライドキー埠頭 37 東ソープボックス Rxバランス EEハーバー対比 SVN...
問題: MySQL がデータ ファイルを保存するパーティションの容量が小さく、現在いっぱいになってい...
<br />この記事では、XHTMLとXHTMLの基礎知識について簡単に紹介します。 X...
目次解決策1: レプリカを再構築する前提条件アドバンテージ欠点手順マスター奴隷解決策2: データ修復...
mysql5.6.28のインストールと設定方法1. 基本的なシステム情報を確認し、yumでインストー...
まず、「LISTENING」状態の TCP ソケットには 2 つの独立したキューがあることを理解する...
HTMLテキスト書式タグ 標簽 描述 <b> 定義粗體文本 <em> 呈現...
目次1. 書き込み可能: 書き込み可能2. 列挙可能: 列挙可能3. 設定可能: 設定可能オブジェク...
プロジェクトシナリオ: Vueプロジェクトを実行したらインデントエラーが出ました。ideaコンパイラ...
実際の業務では、Excel からデータベースにデータをインポートする必要がある場合があります。データ...
目次1. 基礎知識: 2. DHCPサーバーの設定: 1. サーバーのIPを確認する2. DHCP ...
この記事では、JavaScriptでキャンバスを使用して座標と線を描く具体的なコードを参考までに紹介...
目次序文動的SQL 1. まずモジュールのディレクトリ構造を見てみましょう2. 物理モデリングと論理...
目次1. Dockerをビルドする2. コンテナに入る3. 設定ファイルを変更する4. Kafkaを...