tomcat - アプリケーション名を非表示にするnginxの書き換え

原文 tomcat nginx

この質問は何度も尋ねられるかもしれませんが、私は読んでいますが、それでも私が欲しいものを得ることができません。

172.17.1.10:8080/myappでアプリケーションを実行しています。sub.domain.comのみを使用してアプリケーションにアクセスするnginxリバースプロキシをセットアップし、アドレスバーの「myapp」を非表示にします。

私の現在の設定は:

server{
        listen 80;
        server_name sub.domain.com;
        location /myapp {
                rewrite ^/myapp(.*) /$1 break;
                proxy_pass http://172.17.1.10:8080;
                proxy_redirect off;
                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;
        }

}


Nccインデックスページをsub.domain.comsub.domain.com/myapp tomcatインデックスページで表示し続けますが、何が欠けていますか?
答え
この場合、書き換えさえ必要ないようです。これで十分です:

更新された場所:

server{
    listen 80;
    server_name sub.domain.com;
    location / { 
            proxy_pass http://172.17.1.10:8080/myapp/;
            proxy_redirect off;
            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;
    }




これは、バックエンドをシミュレートするサーバーの例です。

あなたの172.17.1.10:8080は私のlocalhost:8088になります:

server {
    listen       8088;

    location /myapp {      
      # if the "login" request param = true, will simulate a redirect to a login page to proxy;
      if ($arg_login = "true" ){
          return 301 http://sub.domain.com/login;            
      }   

      #otherwise return normal content 
      return 200 "$request_uri    OK";        
    }

    #Simulated login page
    location /myapp/login {        
      echo "Login page: Provide credentials!";        
    }


}

したがって、(ブラウザを使用して)私がこれを要求した場合:http://sub.domain.com/api/test

取得します:


/ myapp / api / test OK


一方、リクエストした場合:http://sub.domain.com/api/test?login=true
取得します:


ログインページ:資格情報を入力してください!
関連記事

java - Spring Boot MVCテンプレート-404エラーを与えるtomcat7

tomcat - 非プロジェクトパスからのGradleコピー

rest - RESTサーブレットは開発中ですが、リモートのTomcatで動作しています

java - Atomikos、Tomcat、トランザクションログ、システムプロパティを監視しない

java - Spring Bootを使用してTomcat 7をロードテストするときに例外を接続します

java - サーブレットアプリケーションでユーザーのTomcatパスワードを変更する方法

java - サーバーサイドプッシュテクノロジー-データベース変更後

java - Linuxでtess4jを使用してWebアプリケーションをデプロイする

tomcat - java.lang.IllegalArgumentException:サーブレットマッピングで無効な<url-pattern>が生成されました

session - Tomcat 7でのセッションと並行デプロイメント