【问题标题】:tomcat7 and apache2 on ubuntu in integration with some sort of proxyubuntu 上的 tomcat7 和 apache2 与某种代理集成
【发布时间】:2013-02-06 02:39:30
【问题描述】:

我在 ubuntu 12.10 上运行 php5、apache 2.2tomcat7 全部由 apt-get 安装。

我需要同时运行 .php 和 .jsp 文件。 我可以分别运行它们(tomcat 和 apache httpd)

我在 google 上搜索过,但找不到上述版本的全面且易于理解的解决方案。

朋友告诉我我需要一个代理(用户首先点击 apache httpd,如果它是 .jsp,它会转发给 tomcat,然后返回给 apache,然后再给用户。php 由 apache 以正常方式提供服务)

1.我需要什么模块? 2. 我需要什么设置(*ALL),比如代理(很多我不知道),多个站点的虚拟主机对于 tomcat 和 apache 都需要。*

我认为谷歌或论坛本身缺乏具体的指南。

研究:

mod_proxy_ajp 替换 mod_jk

mod_php 已死

mod_php 用于旧系统,fcgid 用于 2.2,proxy_fcgi 用于 2.4

编辑:

1 和 2 已解决。剩下3个

我在下面有以下 vhost 文件。但我已经在/home/ubuntu/tomcat/www/alpinemadotcom 中为 aplpinema "ROOT.war" 在 8080 上运行了 tomcate(在 webapps 文件夹中但在缓存文件夹中未提取(尽管自动部署:真的)

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>

【问题讨论】:

    标签: tomcat ubuntu apache2 apache


    【解决方案1】:

    我经常做类似的事情。不再需要 mod_jk,因为您已经提到 mod_proxy_ajp 取代了它。

    首先,首先让您的应用程序完全启动并作为 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 
    

    通过首先为 php 设置 apache,一切都应该正常工作,但是一旦有人进入 http://www.example.com/jira/* 的路径,它就会自动代理到你的 tomcat 服务器。 ProxyPassReverse 对于重写后端 tomcat 服务器发送的 url 等非常有用,以便与您的实际托管位置更加相关。

    要记住的一件非常重要的事情是,在您考虑使用代理模块之前,您需要保护您的 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>
    

    【讨论】:

    • PS:我几乎只在 redhat 服务器上工作,但我相信你需要在 ubuntu 服务器上使用 apenmod proxy 和 proxy_ajp,我不是 100% 确定命令是什么,但我很确定不是默认情况下在那里。
    • 你确定我需要 mod_proxy 和 mod_proxy_ajp!两个都?我没有 mod_proxy 在 /etc/apache2/mods-available$
    • 是的,两者都需要。 mod_proxy_ajp 依赖于 mod_proxy。我使用动态链接模块手动编译的大多数 apache 服务器。并且添加 mod_proxy 作为一个模块是一个额外的开关,所以我想它在像 apt-get 这样的发行版安装程序中是一样的。进行搜索以查看是否可以通过以下方式找到相关信息:apt-cache search httpd 或 apt-cache search apache。可能是标准安装之外还需要安装的模块。
    • 你能解释或指出什么重定向什么的机制(除了你提供的 ProxyPass 和 ProxyPassReverse 代码),还有 webapps 文件夹和 apache doc root。
    • 得到了模组。它的 proxy_ajp 和 proxy.load 。配置呢?
    猜你喜欢
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    相关资源
    最近更新 更多