web-dev-qa-db-ja.com

ApacheでProxypassする方法は?

私はグーグルで検索しましたが、プロキシパス用にApacheを構成する際の指示であるものに出くわすことはできませんでした。

私はなんとか見つけました DNS伝播を待たずに新しいウェブホストへの移行ドメイン しかし、私は彼らが何について話しているのか、特に以下を理解していません:

1)プロキシ、proxy_http、および書き換えモジュールを有効にするにはどうすればよいですか?

2)Apache設定ファイルとこの行はどこにありますか?

RewriteEngine on 
ProxyPassReverse   /      http://<your-fqdn-here>/
ProxyPass          /      http://<your-fqdn-here>/

ProxyPassの設定について教えていただけますか?

更新

私はcentOSApacheバージョンで実行しています:

Server version: Apache/2.2.22 (Unix)
Server built:   Feb 10 2012 16:45:29
Cpanel::Easy::Apache v3.9.1 rev9999

このチュートリアルに従ってプロキシモジュールをインストールしようとしました http://www.hackersgarage.com/install-mod_proxy-Apache-module-on-whmcpanel-ceentos-linux-server.html

しかし、私はこのエラーが発生しました:

./configure --enable-mods-shared="proxy proxy_http proxy_connect"
-bash: ./configure: /bin/sh: bad interpreter: Permission denied

だから私はそれを無視して残りのコマンドを続けました。 Apacheを再起動しようとしたとき:

root@db [/tmp/httpd-2.2.22]# /etc/init.d/httpd restart  
httpd: Syntax error on line 36 of /usr/local/Apache/conf/httpd.conf: module proxy_module is built-in and can't be loaded

これをhttpd.confに追加しただけで、機能しました

< VirtualHost *:80 >
   ServerName domain.com
ServerAlias www.domain.com

<IfModule mod_proxy.c> ProxyPass/ http://www.newdomain.com/ ProxyPassReverse/ http://www.newdomain.com/ </ IfModule> </ VirtualHost>

1
kornesh

これをみて:

http://library.linode.com/web-servers/Apache/proxy-configuration/multiple-webservers-proxypass-centos-5

CentOS5用ですが、Apacheは大幅に変更されていないため、CentOS6も同様の構成になります。

基本的に、mod_proxyをコンパイルしようとしてはいけません。 CentOSのhttpdサーバーには、コンパイル済みモジュールとしてすでにそれがあります。上記のドキュメントを使用してプロキシディレクティブをアクティブ化する必要があります。したがって、モジュールをコンパイルしたときに行った変更はすべて取り消す必要があります。

1
cjc

ご提供いただいた情報をもとに、できる限りご質問にお答えします。

まず、モジュールの有効化に関して、これはディストリビューションによって異なります。たとえば、RHEL/CentOSでは、リライトモジュールとプロキシモジュールがベースhttpdパッケージに含まれているため、他に何もする必要はありません。

対照的に、Debianでは、設定ファイルをmods-availableからmods-enabledにシンボリックリンクする必要があります。これを支援するa2enmodというツールがあります。次に例を示します。

a2enmod proxy
a2enmod rewrite

Debianを使用している場合は、/etc/Apache2/mods-available/の設定ファイルを見て、どのモジュールを有効にできるかを確認する必要があります。 UbuntuServerはまったく同じだと思います。

2番目に関する限り、プロキシ設定をプロキシする<VirtualHost>宣言に入れることができます。これもまた、分布や好みによって異なります。ほとんどのRHEL/CentOSシステムは、my-website.com.conf内のサイト固有の/etc/httpd/conf.d/ファイルの使用を推奨します。 Debianユーザーは、ファイルを/etc/Apache2/sites-enabled/(またはsites-availableに置き、a2ensiteでシンボリックリンクを作成する)にする必要があります。これらのヘルパーツールの完全なガイドは ここ にあります。

2
Kyle Smith