- 更新日: 2015年3月28日
- CentOS & Linux
Apacheをローカルネットワークのみに公開にする
Rails を覚えて以来 Nginx の使用が多くなり、Apache を触る機会が減ったのですが、Apache の設定ファイル httpd.conf の設定でちょっとはまってしまった。触れてないと忘れちゃいますね…。
ローカル Mac に立てた Apache ウェブサーバーに、ローカルネットワーク内の他のマシンや iPhone のブラウザからIPアドレスでアクセスしようとしたら、つながらなかったので解決しました。
httpd.conf の Listen ディレクティブ設定で解決
結論から言うと、原因は httpd.conf の Listen ディレクティブの設定ミスでした。最初、以下のように設定していた。
httpd.conf
1 2 3 |
Listen 127.0.0.1:80 |
Listen ディレクティブは、指定したアドレス/ポートの組み合わせからのリクエストに対してのみ応答するように設定する。上記設定の場合だと、127.0.0.1:80(Apache を立てている Mac 本体の80番ポート)からしか Apache サーバーにアクセスできない設定となってしまいます。
なので、Apache サーバーを立てているマシン(Mac)の IP アドレスを Listen するように設定したところ、上手くいきました。例えば、マシンの IP アドレス(ローカルネットワークのプライベートIPアドレス)が、192.168.1.10 だと仮定しますと…
httpd.conf
1 2 3 4 5 6 |
# enable access from own machine Listen 127.0.0.1:80 # enable access from local network Listen 192.168.1.10:80 |
と 192.168.1.10 の80番ポート(httpプロトコルのポート番号)を listen するように設定すれば良い。これで、192.168.1.xxx のローカルネットワーク内のマシン・モバイルから、ブラウザのURLバーに 192.168.1.10 と入力してアクセスできるようになりました。
Listen ディレクティブの復習
Listen ディレクティブは以下の書式で指定します。[] 内は省略できる。
1 2 3 |
Listen [IPアドレス:]ポート番号 [プロトコル] |
公開サーバーの場合は、ポート番号だけ指定する。
1 2 3 |
Listen 80 |
公開しないローカルネットワーク内のみのサーバーなどの場合は、listen する IP アドレスとポート番号のみ指定すると、セキュリティ的に良いかと思います。
また、プロトコルの指定は…
非標準なポートで運用している際にのみ protocol 指定が必要になります。 たとえば https なサイトを 8443 番ポートで運用している場合 :Listen 192.170.2.1:8443 https
だそうです。
以上 Apache の初歩的な部分でちょっとはまっちゃったのでメモでした。
- CentOS & Linux の関連記事
- Job for nginx.service failedのNginxエラー
- upstream sent too big header while reading response header from upstream(Nginx/Rails)
- Can’t get information about user clamav(clamdエラー)
- STDERR: Exception in thread “main” java.lang.InternalErrorエラー
- Linuxサーバー容量を確認するコマンドdf,duをマスターする!
- rmでファイル削除後にdf -hで容量が減らない時の対処(Linux)
- logwatchからのメールが来ないと思ったら…
- Linuxサーバの負荷や使用率を調査するコマンドと手順
- Bashの脆弱性もう一件CVE-2014-7169に対するパッチ適用
- Bash脆弱性に対してChefでbashをアップデートしてパッチ適用
Leave Your Message!