web-dev-qa-db-ja.com

NginxリバースプロキシでバックエンドURL / URIを非表示にする方法

当社は、リセラーとその顧客が使用する新しいSaaSソリューションを開発します。リセラーの顧客にとって、このソリューションは、リセラー自身のソフトウェアアプリケーションのようにブランド化する必要があります。これは例外1つ、URLを完全に実装しました。

私はURL/URIを非表示にする方法をたくさん調べましたが、リバースプロキシが最善の解決策のようです。私はリバースプロキシの構築に使用できるさまざまなソフトウェアアプリケーションについて何かを読みましたが、Nginxはこの仕事に最適のようです。

新しいCentOSサーバーをインストールし、それにNginxをインストールしました。それはかなり簡単でした(Linix noobとしての私にとってさえ)。設定ファイルで苦労した後、リバースプロキシとしてNginxを設定する方法を見つけました。

プロキシIP(192.168.1.100/SaaSなど)を参照すると、別のIPを持つSaaSソリューション)が表示されます。アドレスバーに、リバースプロキシIPが表示されます。

SaaSソリューションのリンクまたはボタンをクリックすると、アドレスバーのIPがSaaSソリューションの実際のIPに変わります。

thisthisthis など多くのトピックを読みましたが、うまくいきません。

私の構成の「場所」の部分は次のATMのようになります。

location /SaaS {
        proxy_pass http://192.168.1.200/login/;
}

これに変更するとすぐに(インターネットで複数の記事で見つけた正しい構成)

location /SaaS {
        proxy_pass http://192.168.1.200/login;
        proxy_set_header Host $Host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        include /etc/nginx/proxy_params;
}

「探しているページが見つかりません」というエラーが表示されました。 Nginxから。何が間違っていますか?

2
RoDo

検索/置換プラグインを使用するか、SaaSアプリのすべてのリンクを更新して、nginx ipを使用する必要があります(代わりにDNSを強くお勧めします)

https://www.nginx.com/resources/wiki/modules/substitutions/

バックエンドIPをプロキシIPに置き換えます。通常は$ Hostを書き換えることができますが、リンクが変数を使用してURLを設定していないようです。

例:

server {
    listen       80;
    listen  [::]:80;
    server_name  sub-test.jacobdevans.com;
    root         /var/www/html/test;
 location / {

            sub_filter 'abc-test.jacobdevans.com' 'sub-test.jacobdevans.com';
            sub_filter_once off;
        }

}

server {
    listen       80;
    listen  [::]:80;
    server_name  abc-test.jacobdevans.com;
    root         /var/www/html/test;

 location / {

            sub_filter '123-test.jacobdevans.com' 'abc-test.jacobdevans.com';
            sub_filter_once off;
        }

}

server {
    listen       80;
    listen  [::]:80;
    server_name  123-test.jacobdevans.com;
    root         /var/www/html/test;

 location / {

            sub_filter 'sub-test.jacobdevans.com' '123-test.jacobdevans.com';
            sub_filter_once off;

        }
}

http://sub-test.jacobdevans.com/

1
Jacob Evans