序文私たち自身のシステムは、サードパーティのシステムからいくつかのコンポーネントをロードする必要があります。計画としては、サードパーティが関連するインターフェースを開発して提供することになっています。私たちはインターフェースを通じてデータを取得し、そのデータを使用してシステムに関連する機能を実装します。 残念ながら、リーダーシップは調整しませんでした。通常の方法が機能しない場合は、何か特別なことをする必要があります。 前述のように、インターフェースを使用してデータを取得して再レンダリングします。これは比較的一般的な方法です。欠点は、関連するモジュールを再実装する必要があり、相手側にインターフェースを開くよう要求することです。 今は、異常なチャネルしか使用できません。たとえば、ページを自社のシステムに直接埋め込むことは簡単に考えられますが、同時にサードパーティのページのスタイルとコンポーネントを制御する必要があります。 困難上記の方法は、自社システムで 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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: 空のパスがページのパフォーマンスに与える影響に対する解決策
キャッシュを使用する目的は、バックエンドの負荷を軽減し、Web サイトの同時実行性を向上させることで...
HTMLハイパーリンクaタグのhrefジャンプとonclickの実行関係htmlのaタグのhrefは...
<br />作業を簡単に完了できる Web ページ作成ツールは数多くありますが、HTML...
導入データベースを使用したことがある人なら、機能面での like 記号と = 記号の類似点と相違点を...
innodb_flush_methodのいくつかの典型的な値 fsync: InnoDB は fs...
この記事では、お絵かきボード/サインボード機能を実現するためのJSキャンバスの具体的なコードを参考ま...
最近、データライフサイクル管理の詳細を整理していたときに、小さな問題を発見しました。それは、MySQ...
1. 2 列レイアウトとは何ですか? 2 列レイアウトには、左側が固定幅で右側が適応幅のレイアウトと...
目次はじめるデータストレージサーバーを構成するRedis セキュリティの管理Redisインストールの...
チュートリアルシリーズMySQL シリーズ: MySQL リレーショナル データベースの基本概念My...
Dockerの概要Docker はオープンソースのソフトウェア展開ソリューションです。 Docker...
1. dhtmlxツリー dHTMLxTree は機能豊富なツリー メニュー コントロールです。豊...
必要な環境をインストールする1. gccのインストールnginx をインストールするには、公式サイト...
目次MySQL Shell import_table データのインポート1. import_tabl...
目次前面に書かれた環境の展開Zookeeper クラスタの展開Clickhouse クラスターの展開...