2009年8月15日土曜日

FreeBSD7/FreeBSD6 Apache2.2 ForwardProxyのインストール(install)設定

この記事は
FreeBSD7.1
FreeBSD6.2
Apache2.2/Portsインストール版
Apache2.2/tarballインストール版
フォワードプロキシー/プロクシ(Foword Proxy)のインストール
について書かれています

■Apache2.2のフォワードプロキシーのインストール方法・設定方法
PortsインストールされたApache2.2

現在ではmod_proxyは最初からインストールされていないようなので、
自分で追加しなければなりません。

#cd /usr/ports/www/apache22/
#make deinstall
#make clean
#make config

[X] PROXY Enable mod_proxy
[X] PROXY_FTP Enable mod_proxy_ftp
[X] PROXY_HTTP Enable mod_proxy_http

#make install

プロキシのポート番号に8080を使うとき
[httpd.conf]
------------------------
Listen 8080

LoadModule proxy_module libexec/apache22/mod_proxy.so
LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so
LoadModule proxy_ftp_module libexec/apache22/mod_proxy_ftp.so

ProxyRequests on
ProxyVia on

<Proxy * >
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.0.0/24
</Proxy>
------------------------
デフォルトではポート番号に80を使います。


■Apache2.2のフォワードプロキシーのインストール方法・設定方法
tarballでインストールされたApache2.2


Apache2の現在のビルトインモジュールの確認
# /usr/local/apache2/bin/httpd -l
[21:23:21 root ~]# /usr/local/apache2/bin/httpd -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c


apacheのコンパイルオプションの確認

以前のコンパイルしたソース中のconfig.niceを参照する
[config.nice]
#! /bin/sh
#
# Created by configure

"./configure" \
"--enable-so" \
"$@"

apache1.3系なら config.status です

ソースがなければ
#cd /usr/local/apache2/bin
#httpd -V
Server version: Apache/2.2.4 (Unix)
Server built: Aug 3 2007 22:33:04
Server's Module Magic Number: 20051115:4
Server loaded: APR 1.2.8, APR-Util 1.2.8
Compiled using: APR 1.2.8, APR-Util 1.2.8
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_FLOCK_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/usr/local/apache2"
-D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

で確認できます。が、あまり参考にならない。。。


#./configure --enable-so --enable-proxy --enable-proxy-http
#make
#make install

コンパイル結果の確認

#/usr/local/apache2/bin/httpd -l
Compiled in modules:
core.c
mod_authn_file.c
mod_authn_default.c
mod_authz_host.c
mod_authz_groupfile.c
mod_authz_user.c
mod_authz_default.c
mod_auth_basic.c
mod_include.c
mod_filter.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_version.c
mod_proxy.c
mod_proxy_connect.c
mod_proxy_ftp.c
mod_proxy_http.c
mod_proxy_ajp.c
mod_proxy_balancer.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_actions.c
mod_userdir.c
mod_alias.c
mod_so.c


mod_proxy
mod_proxy_http
が追加されていればOKです。

続いてhttpd.confを編集します。

[httpd.conf]
------------------------
Listen 8080

 :

ProxyRequests on
ProxyVia on

<Proxy *>
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.0.0/24
</Proxy>
------------------------

Allow from <接続を許可するクライアントのIPアドレス>
を記述します。
設定を間違えると誰でもこのProxyをつかえるようになり危険です。

tarballからインストールしたこのバージョンでは、
ビルトインモジュールとしてコンパイルされるため
LoadModuleディレクティブは不要です。

■その他覚書

Apache2.2.4ではmod_proxyはconfigureしても追加されませんでした。
Apache2.2.13にバージョンアップしてところ正常にmod_proxyが追加されました。

.

0 件のコメント: