質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

1回答

1467閲覧

apache tomcat連携でRewriteRuleを使用した際にREQUEST_URIの内容が欠落する

nosuke_tele52

総合スコア6

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2018/06/27 05:56

編集2022/01/12 10:55

spring boot gradle を使用したtomcat内蔵jarとapacheの連携を行っています。
その際に、apacheのmod_proxyを使用して同一サーバー内のtomcatへアクセスを捌いています。
tomcatへ連携させるためにURLをRewriteRuleで書き換えているのですが、URLの情報が欠落してしまいます。

設定としまして

httpd.confに下記のような設定をしています。

apache

1ProxyPass /aaaa/ http://127.0.0.1:8081/ 2ProxyPassReverse /aaaa/ http://127.0.0.1:8081/ 3<Location /aaaa/> 4 AddOutputFilterByType DEFLATE text/html text/plain text/xml 5 Header append Vary User-Agent env=!dont-vary 6 7 Require all granted 8 RewriteEngine on 9 RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] 10 RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC] 11 RewriteRule .* ws://127.0.0.1:8081%{REQUEST_URI} [P] 12</Location>

この時にRewriteRuleで変更されたURLを確認するとログには以下の様に出力されます。

Log

1init rewrite engine with requested uri /aaaa/login 2pass through /aaaa/login 3[perdir /aaaa/] applying pattern '.*' to uri 'proxy:http://127.0.0.1:8081/login' 4[perdir /aaaa/] RewriteCond: input='' pattern='^WebSocket$' [NC] => not-matched 5[perdir /aaaa/] pass through proxy:http://127.0.0.1:8081/login

URLを書き換えた際に「aaaa」という文字列が消えてしまいます。
REQUEST_URIが変わる原因があるのかと思い検索して見たのですが私の調査力では解決することができませんでした。
上記の対策を教えていただければと思っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/06/27 06:11

プログラムコード(およびエラーメッセージ)は質問内容としては最も重要な部分であるため、見やすくしていただけると助かります。<code>ボタン押下→「コード」部分にコードを貼り付け→「ここに言語を入力」に対象言語名記入(エラーメッセージの場合は不要)の手順で「コードハイライト化」してください。(質問編集画面ではリアルタイムでプレビューが表示されるので見ながら調整してください)
nosuke_tele52

2018/06/27 06:26

ご指摘ありがとうございます。書式の改善を行わせていただきました。
退会済みユーザー

退会済みユーザー

2018/06/27 12:11

tomcat にとんできたリクエストには /aaa/ なんてふくまれてないからじゃろ?
guest

回答1

0

??

<Location /aaaa/> AddOutputFilterByType DEFLATE text/html text/plain text/xml Header append Vary User-Agent env=!dont-vary Require all granted RewriteEngine on RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC] RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC] RewriteRule .* ws://127.0.0.1:8081%{REQUEST_URI} [P] </Location>

は多分動いてませんよ

転送処理は

ProxyPass /aaaa/ http://127.0.0.1:8081/ ProxyPassReverse /aaaa/ http://127.0.0.1:8081/

ここでおわってるはずなので

投稿2018/06/27 12:14

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問