ホームページ >運用・保守 >Nginx >Nginx リバース プロキシを使用してクロスドメインの問題を解決する方法

Nginx リバース プロキシを使用してクロスドメインの問題を解決する方法

PHPz
PHPz転載
2023-05-31 10:20:307125ブラウズ

質問

クロスドメインのリソース共有に関する以前に共有された記事で、ドメインを越えるときに Cookie を送信したい場合は、access-control- allow-origin を * に設定することはできません。要求された Web ページと一致する明確なドメイン名を指定する必要があります。このプロジェクトの開発中に他の人たちと協力しているときに、このような問題に遭遇しました。

Nginx リバース プロキシを使用してクロスドメインの問題を解決する方法

解決策

  1. 一般的に、バックグラウンドで cors クロスドメイン リソース共有を使用すると、次のようなアクセスが行われます。 control-allow-origin にアクセスするドメイン名を設定するだけですが、バックグラウンドの連携が必要となり、ブラウザによっては対応していない場合があります。

  2. パートナーのバックエンドとの連携に基づいて、nginx 方向プロキシを使用してブラウザの同一オリジン ポリシーを満たし、クロスドメインを実現します

実装方法

リバース プロキシの概念

リバース プロキシ方法とは、プロキシ サーバーを使用してインターネットを受け入れることを指します。接続要求は内部ネットワーク上のサーバーに転送され、サーバーから得られた結果はインターネット上の接続を要求したクライアントに返されますが、このときプロキシサーバーは外部からはサーバーのように見えます。リバース プロキシ サーバーはクライアントからは元のサーバーとして見えるため、クライアントは特別な設定を行う必要はありません。クライアントは通常のリクエストをリバース プロキシの名前空間 (name-space) 内のコンテンツに送信します。その後、リバース プロキシはリクエストの転送先 (元のサーバー) を決定し、取得したコンテンツをクライアントに返します。次のようになります。コンテンツは次のようになります。独自のオリジナルコンテンツ。

nginx リバース プロキシを使用してクロスドメインを実現する手順

パッケージをダウンロードして nginx 環境を構築する

Nginx リバース プロキシを使用してクロスドメインの問題を解決する方法

nginx 構成ファイルを変更し、nixn.conf ファイルを見つけて、関連する構成を変更します

http {
 include  mime.types;
 default_type application/octet-stream;

 sendfile  on;

 server {
  listen  8000; #监听8000端口,可以改成其他端口
  server_name localhost; # 当前服务的域名

  location /wili/api/ {
    proxy_pass http://chick.platform.deva.wili.us/api/; #添加访问路径录为/will/api的代理配置
    proxy_http_version 1.1;
  }
  
  location / {
    proxy_pass http://localhost:8001;
    proxy_http_version 1.1;
  }
  
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
   root html;
  }

 }

}

構成の説明:

  • 設定情報から分かるのですが、nginxにlocalhostのポート8000​​をリッスンさせ、ウェブサイトaとウェブサイトbはローカルホストのポート8000​​経由でアクセスしています。

  • 「will/api」で始まるアドレスが処理のために「」に転送されるように、「/will/api」へのアクセスを特別に構成しました。

  • アクセス アドレスの変更

nginx を構成したので、すべてのアクセスは Web サイトの元のアドレス (a) ではなく nginx を経由する必要があります。ウェブサイト ローカルホスト:8001、b ウェブサイト)。したがって、Web サイト a のリクエスト インターフェイスを変更して置き換える必要があります。次に、nginx を起動し、設定された 8000

Nginx リバース プロキシを使用してクロスドメインの問題を解決する方法

#注意すべき点の 1 つは、nginx の起動がポートと競合し、起動が失敗する可能性があることです。タスク マネージャーをチェックして、正常に開始されたかどうかを確認できます。

Nginx リバース プロキシを使用してクロスドメインの問題を解決する方法

以上がNginx リバース プロキシを使用してクロスドメインの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。