Apacheをローカルネットワークのみに公開にする

スポンサーリンク

Rails を覚えて以来 Nginx の使用が多くなり、Apache を触る機会が減ったのですが、Apache の設定ファイル httpd.conf の設定でちょっとはまってしまった。触れてないと忘れちゃいますね…。

ローカル Mac に立てた Apache ウェブサーバーに、ローカルネットワーク内の他のマシンや iPhone のブラウザからIPアドレスでアクセスしようとしたら、つながらなかったので解決しました。

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

httpd.conf の Listen ディレクティブ設定で解決

結論から言うと、原因は httpd.conf の Listen ディレクティブの設定ミスでした。最初、以下のように設定していた。

httpd.conf

Listen ディレクティブは、指定したアドレス/ポートの組み合わせからのリクエストに対してのみ応答するように設定する。上記設定の場合だと、127.0.0.1:80(Apache を立てている Mac 本体の80番ポート)からしか Apache サーバーにアクセスできない設定となってしまいます。

なので、Apache サーバーを立てているマシン(Mac)の IP アドレスを Listen するように設定したところ、上手くいきました。例えば、マシンの IP アドレス(ローカルネットワークのプライベートIPアドレス)が、192.168.1.10 だと仮定しますと…

httpd.conf

と 192.168.1.10 の80番ポート(httpプロトコルのポート番号)を listen するように設定すれば良い。これで、192.168.1.xxx のローカルネットワーク内のマシン・モバイルから、ブラウザのURLバーに 192.168.1.10 と入力してアクセスできるようになりました。

Listen ディレクティブの復習

Listen ディレクティブは以下の書式で指定します。[] 内は省略できる。

公開サーバーの場合は、ポート番号だけ指定する。

公開しないローカルネットワーク内のみのサーバーなどの場合は、listen する IP アドレスとポート番号のみ指定すると、セキュリティ的に良いかと思います。

また、プロトコルの指定は…

非標準なポートで運用している際にのみ protocol 指定が必要になります。 たとえば https なサイトを 8443 番ポートで運用している場合 :

Listen 192.170.2.1:8443 https

だそうです。

以上 Apache の初歩的な部分でちょっとはまっちゃったのでメモでした。

スポンサーリンク
サーバ構築研究会の CentOS 本は、昔からお世話になっています。Linux の教科書は Linux の基本を学ぶのにおすすめです。
 
スポンサーリンク

Leave Your Message!