トップ 一覧 置換 検索 ヘルプ RSS ログイン

Apacheでリバースプロキシの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!/etc/httpd/conf
 #ポート変更
 Listen *:80
http://webos-goodies.jp/archives/51261261.html

 #SELinux の方でも制御しているので、80以外にするときは、SELinuxの設定も変える
 # semanage port -a -t http_port_t -p tcp 88
!!!単純なマッピングの例
http://www.example1.com/proxy/ -> http://www.example2.com/

 #サーバーの名前
 ServerName t-cent01
ServerName は、サーバ自身が使用するサーバ名とポート番号を指定します。このディレクティブは、Apache2からはデフォルトでコメントアウトされており、BIND でサーバー名が自動取得できるようになっていれば指定する必要はありませんが、起動時の問題を避けるためにも明示的に指定しておく事が推奨されています。
 ProxyPass /proxy http://www.example2.com
 ProxyPassReverse /proxy http://www.example2.com
 ProxyPassReverseCookieDomain www.example2.com www.example1.com
 ProxyPassReverseCookiePath / /proxy/

 #各ユーザーの public_html を有効にする
 <IfModule mod_userdir.c>
     #
     # UserDir is disabled by default since it can confirm the presence
     # of a username on the system (depending on home directory
     # permissions).
     #
     #UserDir "disable"
 
     #
     # To enable requests to /~user/ to serve the user's public_html
     # directory, use this directive instead of "UserDir disable":
     # 
     UserDir public_html
 
 </IfModule>
 
 # Control access to UserDir directories.  The following is an example
 # for a site where these directories are restricted to read-only.
 # ホームディレクトリのパーミッションも変更すること。
 <Directory /home/*/public_html>
     AllowOverride FileInfo AuthConfig Limit
     Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
     <Limit GET POST OPTIONS>
         Order allow,deny
         Allow from all
     </Limit>
     <LimitExcept GET POST OPTIONS>
         Order deny,allow
         Deny from all
     </LimitExcept>
 </Directory>

インデックスファイル
 DirectoryIndex index.html index.html.var index.php

!CGIを使う場合
 <Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit Options
    Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
AllowOverride All
Options All
は極力避ける。

.htaccess
 Options +ExecCGI -Indexes
 AddHandler cgi-script cgi pl

perl の実行権限は suExec によりホーム以下の場合は各ユーザの権限で実行される。
php での実行は、apache ユーザで実行されるので注意。
所有者をapacheにするか、sgid と apache の umask の設定で対処する

== AddHandler cgi-script .cgi ==
==または、  httpd.conf を==
== <Directory /home/*/public_html>==
==     Options All==
==     AllowOverride All==
==     #AllowOverride FileInfo AuthConfig Limit==
==     #Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec==
==として、 .htaccess に==
== Options +ExecCGI==
== AddHandler cgi-script cgi pl==
==を書く。==




!!/etc/httpd/conf.d/ssl.conf
ポートを変更する。
/etc/httpd/conf.d/ssl.conf 内の 443 を 変更先のポート番号へ変更。


!!動作確認
test.cgi
 #!/usr/bin/perl
 
 print "Content-type:text/html\n\n";
 
 print "<html>";
  print "<head>";
  print "<meta HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=euc-jp\">";
  print "</head>";
 print "テストCGIだよ";
 print "</html>";
perl の実行権限は suExec によりホーム以下の場合は各ユーザの権限で実行される。

test.php
 <? phpinfo() ?>
php での実行は、apache ユーザで実行されるので注意。
所有者をapacheにするか、sgid と apache の umask の設定で対処する

!!Apache実行時の環境変数
/etc/sysconfig/httpd を編集することでApache実行時の環境変数を設定出来る
 # vi  /etc/sysconfig/httpd

 export NLS_LANG=Japanese_Japan.UTF8
とか

!!Apacheのumaskを変更する
http://www.dondari.com/index.php/Apache%E3%83%A6%E3%83%BC%E3%82%B6%E3%81%AEumask%E5%80%A4%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B

/etc/sysconfig/httpd を編集することで、apacheユーザのumaskを変更できる。
 #vi /etc/sysconfig/httpd

 umask 002

 # /etc/init.d/httpd restart


!!!注意点
HTML 中のリンクなどは、補正されないので相対パス以外のリンクは注意が必要
{{category2 OS,Linux}}