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

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

ただいまの
回答率

89.12%

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

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 488

nic_

score 30

お世話になります。

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • nic_

    2019/05/08 10:24

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

    キャンセル

  • mather

    2019/05/08 10:44

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

    キャンセル

  • nic_

    2019/05/08 11: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で止められている可能性があり、現在確認しているところです。

    キャンセル

回答 3

+1

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/05/07 13: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
    ’’’’’

    キャンセル

+1

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/05/07 17:38

    [GIP:80] → [APサーバ LIP:80]
    [GIP:443] → [APサーバ LIP:443]
    [GIP:8880] → [オリジンサーバ LIP:80]

    オリジンサーバから「curl http://localhost:80」で接続可能
    と、いうことでしょうか?

    それであれば、FireWallのログを見たいところですね・・・

    キャンセル

  • 2019/05/07 18:09

    ご回答ありがとうございます!

    はい。オリジンサーバーで、curl http://localhost:80を実行すると
    正常に、自端末のlocalhostの情報を返します。

    Firewallのログですか。
    これから確認してみます。

    キャンセル

  • 2019/05/07 19:19

    IaaSサービスではFirewallのログはとっていないようです。

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

    キャンセル

check解決した方法

0

確認が済みました。

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 89.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る