当社は、リセラーとその顧客が使用する新しいSaaSソリューションを開発します。リセラーの顧客にとって、このソリューションは、リセラー自身のソフトウェアアプリケーションのようにブランド化する必要があります。これは例外1つ、URLを完全に実装しました。
私はURL/URIを非表示にする方法をたくさん調べましたが、リバースプロキシが最善の解決策のようです。私はリバースプロキシの構築に使用できるさまざまなソフトウェアアプリケーションについて何かを読みましたが、Nginxはこの仕事に最適のようです。
新しいCentOSサーバーをインストールし、それにNginxをインストールしました。それはかなり簡単でした(Linix noobとしての私にとってさえ)。設定ファイルで苦労した後、リバースプロキシとしてNginxを設定する方法を見つけました。
プロキシIP(192.168.1.100/SaaSなど)を参照すると、別のIPを持つSaaSソリューション)が表示されます。アドレスバーに、リバースプロキシIPが表示されます。
SaaSソリューションのリンクまたはボタンをクリックすると、アドレスバーのIPがSaaSソリューションの実際のIPに変わります。
this 、 this 、 this など多くのトピックを読みましたが、うまくいきません。
私の構成の「場所」の部分は次の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から。何が間違っていますか?
検索/置換プラグインを使用するか、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;
}
}