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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Apache

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

Q&A

解決済

3回答

1570閲覧

ブラウザからオリジンサーバーのファイルにアクセスできない

nic_

総合スコア30

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Apache

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

0グッド

1クリップ

投稿2019/05/07 03:42

編集2019/05/07 06:01

お世話になります。

CentOS-apacne製のオリジンサーバーを作成しました。
便宜上、このサーバーのURLは下記の通りとさせて頂きます。
http://test.nic.jp:8888/top/css/top.css
ポート番号8888は、サーバー側で80にポートフォワードしています。

このサーバーにブラウザでアクセスするとタイムアウトエラーとなります。
アクセスログへの出力もありません。

しかし、APサーバーにログインしたコンソールから、curlコマンドでアクセスすると
参照先のファイルの内容が表示され、アクセスログにも出力されます。

curlで得た、HTTPレスポンスヘッダの情報は下記の通りです。

# curl -vI http://test.nic.jp:8888/top/css/top.css * About to connect() to test.nic.jp port 8888 (#0) * Trying xxx.xxx.xx.xxx... connected * Connected to test.nic.jp (xxx.xxx.xx.xxx) port 8888 (#0) > HEAD /top/css/top.css HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: test.nic.jp:8888 > Accept: */* > < HTTP/1.1 200 OK HTTP/1.1 200 OK < Date: Tue, 07 May 2019 02:18:41 GMT Date: Tue, 07 May 2019 02:18:41 GMT < Server: Apache Server: Apache < Last-Modified: Tue, 19 Feb 2019 01:56:29 GMT Last-Modified: Tue, 19 Feb 2019 01:56:29 GMT < ETag: "xxxx-xxxxxxxxxxxxx" ETag: "xxxx-xxxxxxxxxxxxx" < Accept-Ranges: bytes Accept-Ranges: bytes < Content-Length: 4454 Content-Length: 4454 < Cache-Control: public,max-age=600 Cache-Control: public,max-age=600 < Connection: close Connection: close < Content-Type: text/css Content-Type: text/css < * Closing connection #0

アクセスログへの出力内容は下記の通りです。

99.9.9.99 - - [07/May/2019:11:18:41 +0900] "HEAD /top/css/top.css HTTP/1.1" 200 - "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2" test.nic.jp:8888 80 970

.htaccessによるUser-Agentでの接続制御は行っておりません。

curlからとブラウザからのアクセス方法の違いにより、ポートフォワードやルート等に違いがあるのかや
問題に対し、何かお気づきの点がございましたら、ご教示頂けないでしょうか。

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

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

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

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

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

mather

2019/05/07 06:07

> ポート番号8888は、サーバー側で80にポートフォワードしています。 とありますが、ブラウザでアクセスしたのは80番ポートですか?8888番ポートですか?
sage

2019/05/07 07:35

ブラウザを起動したマシンとAPサーバとでネットワーク環境が違うのでは?
nic_

2019/05/07 07:51

sageさん ご回答ありがとうございます! ブラウザを起動したマシン(=私の端末)もAPサーバーも、同じVPN内にいます。 回答になっておりますでしょうか??
sage

2019/05/07 08:31

同じサブネット内からはアクセスできて、routerの外からはアクセスできなかった私のトラブル(https://teratail.com/questions/185178)が参考になりませんか?
nic_

2019/05/07 08:34

sageさん 参考情報のご提供ありがとうございます! ぜひ拝見させて頂きます。 取り急ぎ御礼まで。
nic_

2019/05/07 09:19

sageさん 環境の違いこそありますが、どの層まで到達できているかを確認し 原因となりうるものの特定していくアプローチは、参考になります。 確認できていることは下記の通りです。 ・htaccessは不使用 ・httpd.confでのアクセス制限は、curlでのアクセスができていることから、問題ないと判断 ・iptablesは不使用 ・IaaSサービスで提供されているFirewallは使用中。 Firewallのログが確認できないか、IaaSサービスの提供元に問い合わせ中です。
mather

2019/05/07 10:50

同じVPN内、とのことですが、接続元の端末でDNSサーバの指定などはされていますか?
nic_

2019/05/08 01:24

matherさん ご確認ありがとうございます。 DNSの定義はドメインサービス会社でやっておりまして、端末毎にドメインの定義をhostsに書く といったような設定はやっておりません。 回答になっておりますでしょうか?
mather

2019/05/08 01:44

いえ、DNS管理、ではなくて、ドメインを検索する際にどのDNSサーバーに接続しに行くかの設定です。 具体的な懸念点としては接続しようとしているドメインをIPアドレスに変換(DNS順引き)するときに接続先の指定によっては解決しているアドレスが異なったり解決できないケースなどもありそうなので気になりました。
nic_

2019/05/08 02:05

matherさん なるほど、そういうことでしたか。失礼いたしました。 使用しているDNSは1ヶ所ですので、アドレスの不整合などは起きないかなと思っております。 ドメインに関連する情報として念のため、必要な情報かわかりませんが、下記を記載いたします。 ・CentOS-apacne製のAPサーバーが別におりまして、オリジンサーバーとは  別のドメイン名ですが、同じグローバルIPアドレスを採用しています ・Port80、443へのアクセスはAPサーバーに行きますが  Port8888へのアクセスは80にポートフォワードされてオリジンサーバーに行くようにしています あと本件についてですが、私の業務用端末のブラウザに、URL「http://test.nic.jp:8888/top/css/top.css」と入力すると Port8888を使った通信が社内LANで止められている可能性があり、現在確認しているところです。
guest

回答3

0

確認済みでしたらすみません。
iptables(firewalld)や、その他FireWall機器などで外部からのPort8888は開放されていますでしょうか?

投稿2019/05/07 06:08

k-nishiyama

総合スコア240

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

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

nic_

2019/05/07 06:13

k-nishiyamaさん ご回答ありがとうございます! はい。Port8888は開放しております。 Firewallの設定で、ソースCIDRは0.0.0.0/0、TCP接続時にポート8888を開けるようにしています。
k-nishiyama

2019/05/07 06:20

コメントありがとうございます。 なるほど・・・念の為ですが、Port80も許可されていますか? 可能であれば、firewalledサービスを停止して接続した場合、動作に違いがあるかをご確認いただけますでしょうか。
k-nishiyama

2019/05/07 06:21

あ、firewalledサービスではなくFireWall機器ですか? この場合、OS側でソフトウェアファイアウォールが起動してないかをご確認ください。
nic_

2019/05/08 01:51 編集

早々のご回答、ありがとうございます。 私が上記で申し上げたのは、IaaSサービスで提供されているFirewallへの設定のことです。 Port80も8888番と同じく、開けております。(ソースCIDR 0.0.0.0/0/TCP接続時) また、ソフト側の設定についてですが、iptablesは起動させておりません。 よろしくお願いいたします。
k-nishiyama

2019/05/07 06:52 編集

ご確認ありがとうございます。 と、いうことであれば、外部からブラウザによるPort80での接続は可能な状況ということですね。
nic_

2019/05/08 01:52 編集

ご回答ありがとうございます! > 外部からブラウザによるPort80での接続は可能な状況ということですね。 いいえ。 それは違うのです。 話がややこしくてすみません。 CentOS-apacne製のAPサーバーが別におりまして、オリジンサーバーとは 別のドメイン名ですが、同じグローバルIPアドレスを採用しています。 そして、Port80、443へのアクセスはAPサーバーに行きますが Port8888へのアクセスは、Port80に変換されてオリジンサーバーに行くようにしています。
k-nishiyama

2019/05/07 08:38

[GIP:80] → [APサーバ LIP:80] [GIP:443] → [APサーバ LIP:443] [GIP:8880] → [オリジンサーバ LIP:80] で オリジンサーバから「curl http://localhost:80」で接続可能 と、いうことでしょうか? それであれば、FireWallのログを見たいところですね・・・
nic_

2019/05/07 09:09

ご回答ありがとうございます! はい。オリジンサーバーで、curl http://localhost:80を実行すると 正常に、自端末のlocalhostの情報を返します。 Firewallのログですか。 これから確認してみます。
nic_

2019/05/07 10:19

IaaSサービスではFirewallのログはとっていないようです。 しかし、どうやら社内LANが悪さをしている可能性が出てきたので 詳細を確認し、追って皆さまにご報告差し上げたく存じます。 その為、少々の猶予を頂戴できれば幸いです。
guest

0

curl コマンドの -I オプションによって、 HEAD リクエストになっています。
HEADリクエストではレスポンスヘッダのみを返すので、本文となるファイルは送られてきません。

-I を外してみてください。

$ curl -v http://test.nic.jp:8888/top/css/top.css

投稿2019/05/07 04:49

mather

総合スコア6753

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

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

nic_

2019/05/07 04:57

matherさん ご回答ありがとうございます! 取り急ぎ、Iオプションを除き、改めて実行いたしました。 結果、正常にアクセスすることができ、apacheのアクセスログへの記録もされていました。 下記は実行した際のコンソールログです。 ’’’’’ # curl -v http://test.nic.jp:8888/top/css/top.css * About to connect() to test.nic.jp port 8888 (#0) * Trying 210.140.73.240... connected * Connected to test.nic.jp (xxx.xxx.xx.xxx) port 8888 (#0) > GET /top/css/top.css HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: test.nic.jp:8888 > Accept: */* > < HTTP/1.1 200 OK < Date: Tue, 07 May 2019 04:51:21 GMT < Server: Apache < Last-Modified: Tue, 19 Feb 2019 01:56:29 GMT < ETag: "xxxx-xxxxxxxxxxxxxxxxx" < Accept-Ranges: bytes < Content-Length: 4454 < Cache-Control: public,max-age=600 < Connection: close < Content-Type: text/css < @charset "UTF-8"; ~~~ファイルの内容~~~ * Closing connection #0 ’’’’’
guest

0

自己解決

確認が済みました。

原因は、社内LANから外に出る際、port番号でフィルタリングされていたからでした。

ですので
社内LAN内にある、私の業務用端末のブラウザからオリジンサーバーにアクセスした際はエラーとなり
VPN内ですが、社内LAN外にあるAPサーバーからcurlでオリジンサーバーにアクセスした際は成功していた。
ということです。

早速社内LANに、port番号8888を許可するようにしたら、無事に
私の業務用端末のブラウザからオリジンサーバーへのアクセスに成功しました。

皆様には、様々な視点でご検討頂き本当にありがとうございました。
感謝の気持ちを良い評価にて表したいと思います。
ありがとうございました。

投稿2019/05/08 07:53

nic_

総合スコア30

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問