序文私たち自身のシステムは、サードパーティのシステムからいくつかのコンポーネントをロードする必要があります。計画としては、サードパーティが関連するインターフェースを開発して提供することになっています。私たちはインターフェースを通じてデータを取得し、そのデータを使用してシステムに関連する機能を実装します。 残念ながら、リーダーシップは調整しませんでした。通常の方法が機能しない場合は、何か特別なことをする必要があります。 前述のように、インターフェースを使用してデータを取得して再レンダリングします。これは比較的一般的な方法です。欠点は、関連するモジュールを再実装する必要があり、相手側にインターフェースを開くよう要求することです。 今は、異常なチャネルしか使用できません。たとえば、ページを自社のシステムに直接埋め込むことは簡単に考えられますが、同時にサードパーティのページのスタイルとコンポーネントを制御する必要があります。 困難上記の方法は、自社システムで iframe を計画し、src 属性を通じてサードパーティのシステムを導入する方法です。 クロスドメイン定義まず、狭義の相同性とは、ドメイン名、プロトコル、ポートが同じであることを意味します。 nginxの機能リバースプロキシURL を設定します。ユーザーがこの URL にアクセスすると、プロキシは実際に必要な URL に誘導されます。 静的と動的の分離名前が示すように、動的リソース (サーバーの計算が必要) は静的リソース (通常は html、css、js、img などの静的ページに関連するリソースを指します) から分離されます。 達成しようとするAアプリケーションはポート80を使用し、サードパーティのBシステムもポート80を使用しているため、Bシステムへのプロキシを区別するためにサフィックスを追加する必要があります。おおよそのURLは次のとおりです。 # AのURL http://ローカルホスト/ # B 接尾辞付き URL http://localhost/3 部構成 # Bの実際のURL http://172.16.1.1/ 通常、localhost にアクセスすると、システム A のホームページが表示されます。172.16.1.1 にアクセスすると、システム B のホームページが表示されます。プロキシ URL 経由でアクセスすると、nginx は実際に 172.16.1.1/three-part にプロキシします。はい、テスト時に、サフィックスが引き継がれていることがわかりましたか? ? 私が専門家ではなく、適切に設定していない可能性もありますが、これは私のテストの結果です。 上記の構成の考え方は、2つのアプリケーションに同じIPとポートを持たせ、アプリケーションAのiframeがアプリケーションBのホームページを読み込み、jsを介して操作できるようにすることです。 残念ながら、唯一の方法は、別のポートを設定することです。たとえば、アプリケーション B のプロキシ URL を localhost:81/ に設定します。この方法では、アプリケーション A の iframe に対応するページでアプリケーション B を変更する js を記述することはできません。 最終結果アプリケーション B で F12 を押すと、ログインしてホームページに入るときに読み込まれる x.min.js ファイルがカプセル化されていることがわかりました。 全体のプロセスの概略図を以下に示します。 以下は私が設定して使用しているnginxの設定です 上流ミール{ サーバー 10.1.128.58:80; } サーバー{ listen localhost:8001; # nginx は URL と対応するポートの場所を listen する必要があります =/static/mir.min.js { ルート C:/r9/bin/resources; } 位置 / { # ここでは URL 変数名が使用されており、この変数名はアップストリーム proxy_pass http://mir で定義されていることがわかります。 # 以下の項目は標準のクロスドメイン構成とみなされるため、コピーするだけです proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Fonwarded-For $proxy_add_x_forwarded_for; $request_method = 'OPTIONS'の場合{ 204を返します。 } } # 静的リソースの解放場所 ~ \.(gif|jpg|jpeg|css|js|svg)$ { proxy_pass http://mir; proxy_set_header ホスト $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Fonwarded-For $proxy_add_x_forwarded_for; 有効期限は30日です。 } # クロスドメインリクエストヘッダーを追加します。add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow_Credentials' 'true'; add_header 'Access-Control-Allow-Headers' 'Authorization、Accept、Origin、DNT、X-CustomHeader、Keep-Alive、User-Agent、X-Requested-With、If-Modified-Since、Cache-Control、Content-Type、Content-Range、Range'; add_header 'アクセス制御許可メソッド' 'GET、POST、OPTIONS、PUT、DELETE、PATCH'; #エラーページ 404 /404.html; # サーバーのエラーページを静的ページ /50x.html にリダイレクトします # 通常のわかりやすいエラーページを設定します error_page 500 502 503 504 /50x.html; 場所 = /50x.html { ルートhtml; } } nginx の URL マッチングには、最初のマッチング原則という機能があります。各リクエストに対して、上から下まで、最初に一致したルールがあれば、そのルールに設定された URL に直接ジャンプします。 話題外サードパーティのシステムは実際には通常のシステムであるためです。たとえば、ログインページが標準で付属しています。ログイン手順を処理する必要があります。したがって、x.min.js でサードパーティのシステムが正しくロードされているかどうか、およびログイン操作が必要かどうかを検出する必要があります。同時に、使いやすさのために、マスクレイヤーを追加する必要があります。サードパーティのページをクリーンアップする前に、顧客がそれを見ることができないようにカバーする必要があります。 nginx がクロスドメインの問題を解決し、サードパーティのページを埋め込む方法についての記事はこれで終わりです。サードパーティのページの nginx クロスドメイン埋め込みの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: 空のパスがページのパフォーマンスに与える影響に対する解決策
目次1. 事前分析1. 変数の事前解析と関数の事前解析1. 変数の事前解析2. 機能事前分析2. 事...
概要実際のビジネス シナリオ アプリケーションでは、ビジネス条件に基づいて対象データを取得およびフィ...
1. Docker Compose の使用方法は docker コマンドの使用方法と非常に似ています...
コードをコピーコードは次のとおりです。 <html> <ヘッド> <ス...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
MacOS Catalina アップグレード後の VMware ブラック スクリーンに対する完璧なソ...
この記事の例では、検索ボックスでファジークエリを実装するためのNodeの具体的なコードを参考までに共...
共通点: DIV タグと SPAN タグは、コンテンツ全体を非表示にしたり、コンテンツ全体を移動した...
目次関数呼び出しの最適化関数呼び出しの最適化MySQL 関数は、内部的に決定論的または非決定論的とし...
JavaScript DOM を読み終えた後、解釈型 JavaScript スクリプト言語に対する...
この記事の例では、簡単なショッピングカート機能を実現するためのjsの具体的なコードを参考までに共有し...
目次1. 手ぶれ補正機能とは何ですか? 1. なぜ手ぶれ補正機能が必要なのでしょうか? 2. 手ぶれ...
国内の多くの広告主にとって、印刷広告の制作と評価は、しばしばかなり主観的です。自分の感情や美的感覚に...
目次Reactの公式サイトではライフサイクルの説明を見ることができます次に、ネストされたコンポーネン...
目次1. 開発前にエンティティの種類を決定する2. インターフェースをリクエストするときは、使用する...