2

apt-getによってすべてインストールされたubuntu 12.10でphp5、apache 2.2、およびtomcat7を実行しています。

.php ファイルと .jsp ファイルの両方を実行する必要があります。それぞれで個別に実行できます(TomcatとApache httpd)

Google で検索しましたが、上記のバージョンの包括的でわかりやすい解決策が見つかりません。

友人は私にプロキシが必要だと言っています (ユーザーは最初に apache httpd をヒットし、それが .jsp の場合は tomcat に転送し、次に apache に戻り、次にユーザーに転送します。php は通常の方法で apache によって提供されます)

1. どのモジュールが必要ですか? 2. tomcat と apache の両方に、プロキシ (多くの場合認識していません)、複数のサイトの仮想ホストなど、どのような設定 (* ALL ) が必要ですか。*

Googleまたはフォーラム自体に特定のガイドが不足していると思います。

リサーチ:

mod_proxy_ajp は mod_jk を置き換えます

mod_php は死んでいます

レガシー システムの場合は mod_php、2.2 の場合は fcgid、2.4 の場合は proxy_fcgi

編集:

1と2は解決しました。残り3個

以下のvhostファイルがあります。しかし、私はすでに aplpinema " ROOT.war " の8080 で tomcate を実行しています/home/ubuntu/tomcat/www/alpinemadotcom (これはwebapps フォルダーではなくキャッシュフォルダーに抽出されます (auto deploy:true にもかかわらず)

3-. これに似たものをどこにどのように置くのですか:

ProxyPass /apps/jira ajp://backend.example.com:8009/jira
ProxyPassReverse /apps/jira http://www.example.com/jira



<VirtualHost *:80>
        ServerAdmin info@alpinema.com
        ServerName  www.alpinema.com
        ServerAlias alpinema.com

        DocumentRoot /home/ubuntu/apache/www/alpinemadotcom
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /home/ubuntu/apache/www/alpinemadotcom/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
4

1 に答える 1

2

私はこれに似たようなことをかなり頻繁に行ってきました。すでに述べたように、mod_proxy_ajpがmod_jkに置き換わるため、mod_jkは不要になりました。

まず最初に、アプリケーションを完全に起動してLAMPスタックとして実行し、すべてのPHPが正しく機能するようにします。それが完了すると、残りを正しく動作させるために必要な2つのモジュールがありますmod_proxyとmod_proxy_ajp!

それらをLoadModuleリストに追加すると、仮想ホストの種類のエイリアスを作成できます

次のようなもの:

ProxyPass /apps/jira ajp://backend.example.com:8009/jira
ProxyPassReverse /apps/jira http://www.example.com/jira 

最初にApacheをphpに設定すると、すべてが正常に機能するはずですが、誰かがhttp://www.example.com/jira/ *のパスに入ると、自動的にTomcatサーバーにプロキシされます。ProxyPassReverseは、バックエンドのTomcatサーバーが送信するURLなどを、実際にホストされている場所に対してより相対的なものに書き換える場合に役立ちます。

覚えておくべき非常に重要なことの1つは、プロキシモジュールの使用を検討する前に、apacheを保護する必要があるということです。インターネット上のオープンプロキシとしては、非常に悪いことになる可能性があります。

このページを参照してください:http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#access

その同じページでは、プロキシモジュールで実行できるさまざまな変更についても詳しく説明しています。

=========更新された例=========

<VirtualHost *:80>
    ServerAdmin info@alpinema.com
    ServerName www.alpinema.com
    ServerAlias alpinema.com
    DocumentRoot /home/ubuntu/apache/www/alpinemadotcom

    ProxyPass /alpinemadotcom http://www.alpinema.com:8080/
    ProxyPassReverse /alpinemadotcom http://www.alpinema.com/alpinemadotcom 

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory /home/ubuntu/apache/www/alpinemadotcom/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
于 2013-02-20T22:31:12.277 に答える