ホームページ  >  記事  >  運用・保守  >  nginx がクロスドメインの問題を解決する方法

nginx がクロスドメインの問題を解決する方法

(*-*)浩
(*-*)浩オリジナル
2019-07-13 15:15:064151ブラウズ

フロントエンドとバックエンドを分離し、nginx を使用してクロスドメインの問題を解決する

nginx がクロスドメインの問題を解決する方法

フロントエンド: vue.js nodejs webpack

バックエンド: SpringBoot

リバース プロキシ サーバー: nginx

アイデア: フロントエンド コードをパッケージ化し、nginx が静的リソースを指すようにし、nginx がバックグラウンド リクエストを転送する。

1. フロントエンド コードをパッケージ化します:

npm run build

により dist フォルダーが生成されます。 Index.html ファイルと静的フォルダーが含まれています。例としてローカル パスを取り上げます:

/Users/xxx/ideaProjects/webtest/dist

2。

を開きます。 /usr/local/etc/nginx ディレクトリの nginx.conf で、次の内容をサーバーに追加します。

listen       80; #原为8080,避免冲突,更改为80
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;


        location / {
            root   /Users/xxx/ideaProjects/webtest/dist;
            index  index.html;
            
            # 此处用于处理 Vue、Angular、React 使用H5 的 History时 重写的问题
            if (!-e $request_filename) {
                rewrite ^(.*) /index.html last;
                break;
            }
        }


        # 代理服务端接口
        location /api/ {
            proxy_pass http://localhost:8080/;# 代理接口地址
        }

Test

フロントエンドがリクエストを送信します。 http://localhost /test の場合、vue-router は http://localhost/api/demo/1 にリダイレクトし、実際のアクセスは http://localhost:8080/demo/1 になります。

リクエストをバックグラウンドに直接送信します: http://localhost/api/demo/1 にアクセスします。実際のアクセスは次のとおりです: http://localhost:8080/demo/1

続きNginx 関連の技術記事については、Nginx チュートリアル 列にアクセスして学習してください。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。