Help us understand the problem. What is going on with this article?

hostsとタブの落とし穴![Squid]

More than 1 year has passed since last update.

追記 [ 2018-09-13 ]

結論

squid使用時にhostsの行頭にブランク入れるな

(@n-soda さん調べ)

一応念のためと思って squid のソースを読んでみたら、
なんと squid は libc を使わず独自に /etc/hosts を parse していて、
そこでは行頭にスペースやタブがあると、アドレスが書いてないものとみなされてしまうコードになっていました。
この辺です:
https://github.com/squid-cache/squid/blob/d429cbd0e4d86d4af54ed50e499da14039ff7429/src/tools.cc#L954
これはビックリ。
というわけで、行頭のスペースないしTABが squid 限定で犯人でした。

環境

追加調査

  • スペース・タブ -> NG
  • 改行コードCRLF -> OK

hostsファイル設定していたら詰まった話

 この前かかわった案件で、大量のhostsを設定する必要があってhostsファイルの内容を修正してローカル環境にアクセスしていた時に起きました。

落とし穴「その①」Windowsのhostsファイルはこう書きました。

hosts
    127.0.0.1  example.com
    127.0.0.1  hoge.example.com

上記で当然動きますよね。
よっしゃ、じゃあWindowsにプロキシ立ててローカル環境にアクセスしたろ!
ってことでCentOS7にてプロキシサーバーを設定。接続してみると・・・つながらない!!

落とし穴「その②」CentOS7のhostsファイルもこう書きました。

hosts
    127.0.0.1  example.com
    127.0.0.1  hoge.example.com

iPadで何度もローカル環境に接続してもつながらない!!
なんで!?こんな簡単な構築なのに!!ってパニックに陥ってました。
色々調べてもプロキシサーバーの設定に間違いはない(完全にここばかり調べていました。)

ログやらなんやら見ていると・・・名前解決できていないのかとなりまして、hostsか!!
とりあえずいろいろな書き方を試していたら解決しました。

正解

hosts
127.0.0.1  example.com
127.0.0.1  hoge.example.com

タブだめなのか
Windowsのhostsファイルをコピペで流用していたものですから名前解決できずにずっと怒られていました。

結局

ぶっちゃけタブの何がダメなのかわからない。
Linuxの設定は左詰めが基本的なことは設定ファイルを見まくった結果雰囲気でわかりましたが、そういう規約でもあるのですかね?
Windowsで正常動作しているのに・・・
調べてはいるのですが、なかなか出てこないです。
(知っている方ご教示ください!)
もしかしたら他に原因があったのかもしれませんが、同じようなことで詰まっている方は参考にしてみては?

コピペマン、ダメ。絶対。

一言

完全にプロキシサーバーに注目しすぎて名前解決に注目できなかったところに猛省。
そもそもエラーに書いてあったし・・・

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした