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

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

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

HttpWebRequestとは.NETにおけるクラスであり、WebRequestクラスをHTTPに導入するものです。

Apache

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

Java

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

proxy

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

Q&A

解決済

2回答

2567閲覧

Apacheで同一local環境にあるproxyサーバのリクエストを監視する方法

退会済みユーザー

退会済みユーザー

総合スコア0

HttpWebRequest

HttpWebRequestとは.NETにおけるクラスであり、WebRequestクラスをHTTPに導入するものです。

Apache

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

Java

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

proxy

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

0グッド

0クリップ

投稿2015/10/08 05:46

現在Javaを利用してproxyを経由してhttp接続を行うプログラムを書いています。現在http接続が上手くいくことまでは確認できていて,

http://www.mwsoft.jp/programming/java/http_proxy.html

のリンクを参考にproxy経由のリクエストを本番環境で行う前に同一PC環境でApacheのproxyを利用してリクエストを行い動作確認したいのですが,Apacheの設定に不慣れでCustomlogがなんなのかよく解っていません。httpd.confのディレクティブの意味は理解しています。

同一PC内でproxyサーバに正しくリクエストが送られているかどうかを確認するにはどのようにすればよいでしょうか。
最悪他のPCからコード実行すればよいのですが勉強のために教えていただきたいと思っています。

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

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

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

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

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

guest

回答2

0

ベストアンサー

Customlog ディレクティブで、たとえばアクセスログへ含めたい情報とフォーマットを定義出来ます。(ご参考

詳しく検証するにはパケットキャプチャソフトを使ったりするのでしょうが、簡易的にはプロキシサーバ側のアクセスログに、ブラウザからのリクエストに対応したログがきちんと出力され、Webサーバー側のアクセスログではプロキシサーバーからのアクセスが記録されており、結果的にブラウザで想定通りのレスポンス(画面)が表示できていれば良いのではないでしょうか?

両方をローカル環境に構築する場合、Webサーバー本体とプロキシサーバー側では待受ポートが違うはずなので、Webサーバー側とプロキシサーバー側のどちらにリクエストを投げているかは間違いようがないので、簡単に確かめられると思います。

投稿2015/10/08 13:40

pi-chan

総合スコア5936

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

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

退会済みユーザー

退会済みユーザー

2015/10/08 16:54 編集

ありがとうございます。回答をいただく前にCustomlogディレクティブを追加することで指定されたパスにログが作成されることに気付き、ログの中身を見ることで確認が取れました。確かに間違えようがありませんでした。(そのあと何故かプロキシのポートフォワーディング用のhttpsのポートがデフォルトで開いていないことに気付かず結構ハマったのですが) 直接的な解決方法であるためベストアンサーにさせていただきます。
guest

0

Java(=Client)----->apache(=proxy)------>Website

で、apacheにJavaのIP(or Agent)なりからのアクセスがあり、
WebsiteのHTMLが取得できていればApacheのproxyを通り
通信が出来ているという事なのかとおもいますが、ローカル
ですべて構成していたとしても、切り分けできますよね?
(すみません、環境が見えないので違ったら指摘下さい)

CustomLogの記述で UserAgentは %{User-agent}i

Javaの動作と、Proxyの環境を切り分けるには、別の手段で
Proxyの動作だけ確認してみるのも手です。

% nc localhost 8080

GET / HTTP/1.0


もしくは telnet コマンド

投稿2015/10/08 13:26

Ken.sakanakana

総合スコア1768

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

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

退会済みユーザー

退会済みユーザー

2015/10/08 17:00 編集

結果から言うと切り分け出来ました。 最初学術機関のプロキシにjavaから適当なURIとヘッダをリクエストして動いたのでjavaの問題ではないことを確認しapacheの設定を直す事が出来たのですが、外部のプロキシに頼らずjavaの問題とプロキシの問題を切り分けする方法が分からなかったので教えていただいて大変勉強になりました。 ディレクティブ追加でログが作られることに気付いた後javaからのアクセスログも表記されることも確認したので、確かに同一環境でもこのように調べるのがいいと思いました。 また何かあったらよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問